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

Javascript 在项目数据源中记录电话号码和全名,javascript,google-chrome,google-app-maker,Javascript,Google Chrome,Google App Maker,我在google app maker中为我的应用程序实现了一个用户选择器,并同步了目录。当我使用它并将电子邮件地址存储到我已设置的项目数据源中时,它会起作用,但我还希望将关联的PrimaryPhone和电子邮件地址的全名作为单独的变量记录在我的项目数据库中。我不知道这是脚本中的代码,还是数据源onCreate或onLoad中的代码。在此问题上的任何帮助都将不胜感激 如果您关心安全性和数据一致性,则可以使用服务器端实现: //onCreate模型事件处理程序(将要创建的记录作为参数) var qu

我在google app maker中为我的应用程序实现了一个用户选择器,并同步了目录。当我使用它并将电子邮件地址存储到我已设置的项目数据源中时,它会起作用,但我还希望将关联的PrimaryPhone和电子邮件地址的全名作为单独的变量记录在我的项目数据库中。我不知道这是脚本中的代码,还是数据源onCreate或onLoad中的代码。在此问题上的任何帮助都将不胜感激

如果您关心安全性和数据一致性,则可以使用服务器端实现:

//onCreate模型事件处理程序(将要创建的记录作为参数)
var query=app.models.Directory.newQuery();
//假设电子邮件字段值由客户端的UserPicker小部件填充
query.filters.PrimaryEmail._=record.Email;
var people=query.run();
如果(people.length==1){
var person=people[0];
record.FullName=person.FullName;
record.PrimaryPhone=person.PrimaryPhone;
}否则{
//TODO:处理边缘情况
}
如果您对安全没有偏执狂,您可以:

  • 配置UserPicker以选择整个对象(选中“valueIsRecord”属性复选框)
  • 处理onValueEdit UserPicker小部件事件:
  • //onValueEdit用户选择器事件
    //假设小部件绑定到数据源的创建模式项
    var draft=widget.datasource.item;
    draft.Email=newValue.PrimaryEmail;
    draft.FullName=newValue.FullName;
    draft.PrimaryPhone=newValue.PrimaryPhone;
    
    非常感谢,我使用了服务器端实现。很好!