我按照this video中的步骤创建了评论部分。
James(作者)创建了两个模型,然后创建了两者之间的关系,然后创建了一个表来添加/编辑注释/注释。
他在一个模型中使用以下事件:
onCreate
record.reported_by = Session.getActiveUser().getEmail();
record.Date = new Date();
以及第二个中的以下事件。
onCreate
record.Tech = Session.getActiveUser().getEmail();
record.Date = new Date();
现在,如果您有一个绑定到该关系的标签,它将显示创建新项目的用户的电子邮件地址。
所有这一切都很完美。我只想找到一种方法让标签显示全名而不是电子邮件地址。
我希望通过像getFullName这样的方式切换getEmail会很简单,但没有这样的运气。
答案 0 :(得分:3)
此时Afaik在App Maker中没有内置方法来获取当前用户的全名,但您可以通过向应用程序添加Directory model来获取它。添加目录模型后,您可以通过多种方式为用户的全名:
提供服务1创建记录时将其保存到数据库
// onCreate
var email = Session.getActiveUser().getEmail();
var directoryQuery = app.models.Directory.newQuery();
directoryQuery.filters.PrimaryEmail._equals = email;
var reporter = directoryQuery.run()[0];
record.reported_by = email;
record.reported_full_name = reporter.FullName;
record.Date = new Date();
然后使用此' reported_full_name'在绑定而不是' reported_by'。
2使用计算模型并建立动态的虚拟关系'在您的本地模型和目录之间
3在UI上加载数据源后查询全名的服务器
// widget binding
setFullName(widget, @datasource.item.reported_by)
// client script
setFullName(widget, email) {
google.script.run
.withSuccessHandler(function(fullName) {
widget.text = fullName;
})
.getFullName(email);
}
// server script
function getFullName(email) {
var directoryQuery = app.models.Directory.newQuery();
directoryQuery.filters.PrimaryEmail._equals = email;
var person = directoryQuery.run()[0];
return person.FullName;
}