从列表对象获取选择

时间:2019-01-25 22:45:20

标签: google-app-maker

我在appmaker中有一个表,其中添加了复选框,就像这样:

app screenshot showing checkbox in list

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

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

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

2 个答案:

答案 0 :(得分:2)

对于这种类型的功能,自动填充(智能)功能不适用于您。当您尝试从表中获取行集合时,需要对子项进行不同的处理。对于您的按钮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后,再次使用自动完成代码功能将不起作用,这将返回表主体的所有直接子代,这就是您想要的。

答案 1 :(得分:0)

基于1:133,似乎是说Table3Row没有子级。我想知道是否可以使用widget.root.descendants.Table3Row处理特定表的方式有所不同。