【发布时间】:2017-10-17 08:07:56
【问题描述】:
我最近在 Apostrophe 中使用了很多小部件,但在小部件的帮助程序方面遇到了一些问题。我的小部件上有一个助手,可以检查不同对象的某些字段,以确定它是否应该在页面上显示。但是,我注意到一个奇怪的问题 - 看起来每当我尝试加载一些模块时,助手都没有等待 async toArray 方法在返回之前完成。所以,当我有下面的代码时:
self.addHelpers({
familyMembers: function() {
var userId = "set from context";
var userModule = self.apos.modules['apostrophe-users'].find(req, {_id: userId}).permission(false);
userModule.toArray(function (err, arr) {
var showMe = false;
if (some_condition) {
showMe = true;
}
return showMe;
})
}
})
它实际上并没有向模板返回任何内容。但是,当我返回 toArray 之外和函数顶层内的任何值时,它确实返回了我设置的值。有没有办法解决?我假设该方法在返回之前没有等待 toArray 方法完成,但我可能完全错了。
谢谢!
【问题讨论】:
标签: apostrophe-cms