Google app maker 网格单元在开始搜索之前正在收集数据

Google app maker 网格单元在开始搜索之前正在收集数据,google-app-maker,Google App Maker,我试图使用用户选择器收集输入的多个数据,然后将数据存储到网格单元中以显示。但现在,我的网格单元格甚至在我开始搜索之前就显示为空单元格。而且数据是空的。 员工姓名“OnValueChange”代码为“addTrainee(widget,newValue);” 网格单元没有任何事件。网格单元内标签的文本值。应该收集电子邮件地址的是“addNewData(@datasource.item['PrimaryEmail'])” 背后的原因可能是什么?如何修复它 看起来您可能正在尝试完成类似于此处提供的培

我试图使用用户选择器收集输入的多个数据,然后将数据存储到网格单元中以显示。但现在,我的网格单元格甚至在我开始搜索之前就显示为空单元格。而且数据是空的。 员工姓名“OnValueChange”代码为“addTrainee(widget,newValue);”

网格单元没有任何事件。网格单元内标签的文本值。应该收集电子邮件地址的是“addNewData(@datasource.item['PrimaryEmail'])”


背后的原因可能是什么?如何修复它

看起来您可能正在尝试完成类似于此处提供的培训中心模板中提供的内容。我可能会建议你看看这个模板,看看这是否能解决你的问题。是的,我实际上是在重建一个非常类似的东西。我看了看问题。但在我的车里找不到任何问题。和训练中心差不多。因为我直接从training hub复制了许多部分。我建议更新您的问题,在Employee Name字段中包含绑定。但我的猜测是,对于employee name字段,您不需要onvaluechange事件,这就是为什么您会因为这段代码而生成一个大部分为空的网格。如果我删除employee字段的onvaluechange字段。唯一发生的事情是,我不能再将我的值附加到网格单元上。但我仍然有空的网格。所以我猜问题在网格中。电子邮件地址值中唯一的绑定是“addNewData(@datasource.item['PrimaryEmail'])。好的,让我们尝试另一种方法。什么是数据源“ChangeSystem”,它是网格绑定到的数据源?网格所在的父元素的数据源是什么?它是“ChangeSystem”的表单还是其他形式?如果您试图在此处指定某种类型的关系或指向多个个人的字段值,那么您似乎过于复杂化了当前方法。您可能还需要考虑更改您的用户选择器设置来检查“记录”,这样您可以一起消除检查索引函数。看起来,您可能正在尝试完成与这里提供的训练集线器模板中可用的类似的东西。我可能会建议你看看这个模板,看看这是否能解决你的问题。是的,我实际上是在重建一个非常类似的东西。我看了看问题。但在我的车里找不到任何问题。和训练中心差不多。因为我直接从training hub复制了许多部分。我建议更新您的问题,在Employee Name字段中包含绑定。但我的猜测是,对于employee name字段,您不需要onvaluechange事件,这就是为什么您会因为这段代码而生成一个大部分为空的网格。如果我删除employee字段的onvaluechange字段。唯一发生的事情是,我不能再将我的值附加到网格单元上。但我仍然有空的网格。所以我猜问题在网格中。电子邮件地址值中唯一的绑定是“addNewData(@datasource.item['PrimaryEmail'])。好的,让我们尝试另一种方法。什么是数据源“ChangeSystem”,它是网格绑定到的数据源?网格所在的父元素的数据源是什么?它是“ChangeSystem”的表单还是其他形式?如果您试图在此处指定某种类型的关系或指向多个个人的字段值,那么您似乎过于复杂化了当前方法。您可能还需要考虑更改用户选择器设置来检查“记录”,这样您可以一起删除检查索引函数。

  var ds = app.pages.PracticePage.descendants.Grid1.datasource;
  var traineesEmails = ds.items.map(function(item) {
    return item.PrimaryEmail;
  });
  return traineesEmails.indexOf(primaryEmail);


}





function deleteTrainee(primaryEmail) {


 var testBox = app.pages.PracticePage.descendants.TestBox;


  //Test
  console.log ("Email: "+primaryEmail);
  console.log("Before: "+ testBox.value);

testBox.value =  testBox.value.replace(primaryEmail,"");
  console.log("After: "+ testBox.value);



  //Test


  var index = getTraineeIndex(primaryEmail);
  if (index === -1) {
    return;
  }  

   var ds = app.pages.PracticePage.descendants.Grid1.datasource;
   ds.items.splice(index, 1);



}





function addTrainee(userPickerWidget, newValue) {



if (!newValue) {
    console.log("Checking for new Value Statement.");
    return;
  } 

  if (getTraineeIndex(newValue.PrimaryEmail) > -1) {
    console.log("Cheking for repeatation");
    return;
  } 











  var ds = app.pages.PracticePage.descendants.Grid1.datasource;

  ds.items.push({
    FullName: newValue.FullName,
    PrimaryEmail: newValue.PrimaryEmail,

  });

 console.log("Pushed Email Address: ", newValue.PrimaryEmail);


  var testBox = app.pages.PracticePage.descendants.TestBox;



   if(testBox.value === null){
   testBox.value = newValue.PrimaryEmail;
     console.log("No data in text box");
  }  
  else {
    testBox.value = testBox.value + ", "+ newValue.PrimaryEmail;
  console.log("Enter data in text box");
  }

  userPickerWidget.value = null;
}


function addNewData(PrimaryEmail){

  console.log("running AddNewData function ");

  while(typeof(PrimaryEmail) != undefined){
     console.log("returning Primary Email: "+ PrimaryEmail);
    return PrimaryEmail;

  }


}