Jon*_* M. 49 javascript handlebars.js meteor
我有一个好帮手
Template.user_profile.helpers({
user:function() {
return Meteor.users.find({'profile.front_name':Session.get('slug')}).fetch()[0];
}
});
Run Code Online (Sandbox Code Playgroud)
我想在集合中添加一个帮助程序,它可以访问user帮助程序并将其_id与当前用户进行比较_id,以判断用户是否正在访问自己的配置文件.我正在使用一些非常难看的东西:
Template.user_profile._tmpl_data.helpers.user()
Run Code Online (Sandbox Code Playgroud)
最终代码:
Template.user_profile.helpers({
user:function() {
return Meteor.users.find({'profile.front_name':Session.get('userId')}).fetch()[0];
},
isCurrentUser: function() {
return Template.user_profile._tmpl_data.helpers.user()._id === Meteor.userId();
}
});
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来访问另一个帮手?
out*_*uch 34
我刚刚在控制台中意外地发现了这个:
Template.registerHelper
function (name, func) {
Blaze._globalHelpers[name] = func;
}
Run Code Online (Sandbox Code Playgroud)
所以,Blaze._globalHelpers正是我们正在寻找的!
ava*_*he1 11
您可以使用以下命令调用模板帮助程序(不是全局帮助程序 - 这是outluch的答案)
Template.tplName.__helpers.get('helper').call()
Run Code Online (Sandbox Code Playgroud)
MDG建议使用常规函数,然后将其传递给帮助程序,事件等.看到这里.
更新16.06.16
实际上我强烈建议简单地使用manuel:viewmodel - 它减轻了很多Blaze的头痛......
您甚至可能不需要像那样打电话给助手。已经内置了一个 currentUser 帮助器。
http://docs.meteor.com/#template_currentuser
{{currentUser}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12748 次 |
| 最近记录: |