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

标签 drop-down-menu google-app-maker

我有一个带有 first_namelast_name 字符串字段的 Employees 模型(我将使用 John Doe 作为示例)。我希望使用 Employees 数据源让下拉小部件的每一行都显示为“Doe, John”。通过编辑小部件的“名称”字段,我可以很容易地将下拉小部件的名称数组绑定(bind)到一个或另一个字段:

=@datasources.Employees.item.last_name 产生 Doe,并且 =@datasources.Employees.item.first_name 分别在下拉列表的第一个列表项中生成 John。

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

=@datasources.Employees.item.last_name + "-test" 在下拉列表中产生 Doe-test

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

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

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

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

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

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

这是执行此操作的最佳/唯一方法,还是我只是在名称绑定(bind)对话框中遗漏了一些内容?谢谢!

最佳答案

在您的下拉名称绑定(bind)中执行以下操作:

(@datasources.Employees.items).map(function(i) { return i.last_name + ', ' + i.first_name; })

这会做你想做的事。

关于drop-down-menu - AppMaker - 将数据源中每个下拉列表名称数组元素的两个字段组合起来的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55118699/

相关文章:

javascript - 固定宽度内的响应式导航

html - 在导航栏中使用 CSS 的简单下拉菜单

javascript - 使用javascript获取具有多个下拉菜单的选项的选定值

google-app-maker - 谷歌应用制作工具 : TextBox only accept Numbers

mysql - 如何在 Google App Maker 的 Cloud SQL 中创建唯一行

javascript - 如何捕获 saveChanges 上的错误 - Google 应用制作工具

html - Bootstrap 导航栏菜单重叠文本

JavaScript 无法从选择下拉列表中检索选项值

google-app-maker - 添加条目后表未更新

javascript - 在项目数据源中记录电话号码和全名