首页 > 解决方案 > 从列表对象中获取选择

问题描述

我在 appmaker 中有一个表格,我添加了复选框,如下所示:

应用程序屏幕截图显示列表中的复选框

我想从用户检查的邮件中获取电子邮件列表。此时我什至无法访问单个复选框的状态。这是我尝试添加到按钮的当前代码片段:

console.log(widget.parent.parent.parent.children.Panel1.children.Table3Panel.children.Table3.children.Table3Body.children.Table3Row.children.UserSelectionCheckbox.value);

我得到错误:

Cannot read property 'children' of undefined at Home.Panel1.OuSelectPanel1.Button6.onClick:1:133

我能够使用自动填充来编写整个语句,为什么找不到子对象?有什么方法可以直接引用此列表,而无需从小部件或应用程序根目录向下走?

标签: google-app-maker

解决方案


对于这种类型的功能,自动填充(智能感知)对您不起作用。当您尝试从表中获取行的集合时,您需要以不同的方式处理子项。我会为您的按钮 onClick 事件建议与此类似的代码:

var rows = widget.root.descendants.Table3Body.children._values;
var emails = [];
for (var i in rows) {
  var value = rows[i].children.Checkbox1.value;  
  if (value) {
    emails.push(rows[i].datasource.item.Email);
  }
}
console.log(emails);

同样,在您选择 _values 后,自动完成代码功能将无法正常工作,这将返回您的表体的所有直接子代,这正是您想要的。


推荐阅读