AppMaker-组合下拉列表的名称数组中每个元素的数据源中两个字段的更好方法?

mjb*_*lay 2 drop-down-menu google-app-maker

我有一个具有first_namelast_name字符串字段的Employees模型(示例中将使用John Doe)。我想使用Employees数据源将下拉小部件的每一行读为“ Doe,John”。通过编辑小部件的“名称”字段,我可以轻松地将下拉小部件的名称数组绑定到一个字段或另一个字段:

=@datasources.Employees.item.last_name产生Doe,并 =@datasources.Employees.item.first_name产生下拉菜单的第一个列表项中的John。

将静态字符串连接到字段也可以:

=@datasources.Employees.item.last_name + "-test" 在下拉菜单中进行Doe-test

但是,当我尝试修改此绑定以合并两个字段时,它不起作用:

=@datasources.Employees.item.last_name + ", " + @datasource.item.Employees.first_name 只产生母鹿

甚至将两个字段都转储到数组中并加入它们:

=[@datasources.Employees.item.last_name, @datasources.Employees.item.first_name].join(", ") 只产生母鹿

我发现从下拉窗口小部件的同一行上的记录中获取两个不同字段的值的唯一方法是在onDataLoad事件期间使用客户端脚本填充窗口小部件的名称数组:

app.datasources.Employees.load(function() {
  app.datasources.Employees.items.forEach(
    item => widget.names.push([item.last_name, item.first_name].join(", "))
  );
});
Run Code Online (Sandbox Code Playgroud)

这是最好的/唯一的方法,还是我只是在名称绑定对话框中缺少某些内容?谢谢!

Mar*_*ssa 7

在下拉列表名称绑定中,执行以下操作:

(@datasources.Employees.items).map(function(i) { return i.last_name + ', ' + i.first_name; })
Run Code Online (Sandbox Code Playgroud)

那会做你想要的。