如果我有两个想要检查相同功能的返回值的车把模板怎么办?有没有正确的方法来做到这一点?显然我可以这样做:
var say_foo = function() {
alert('foo');
};
Template.foo.say_foo = say_foo;
Template.bar.say_foo = say_foo;
Run Code Online (Sandbox Code Playgroud)
但有没有办法通过Template对象直接执行此操作?由于这是JavaScript,我可以为任何对象的任何属性分配一个函数,但我尝试过:
Template.say_foo = function() { alert('foo'); };
Run Code Online (Sandbox Code Playgroud)
当然模板找不到这个功能.
只是对最佳实践等感到好奇.谢谢!
小智 17
我认为会有更好的版本(如果您使用Handlebars,这是默认设置):
Template.registerHelper('my_helper', function() {
// code
});
Run Code Online (Sandbox Code Playgroud)
您可以使用{{my_helper}}从任何模板中调用此内容!
希望能帮助到你 :)
sri*_*vas 16
根据Meteor文档,正确的方法是使用UI命名空间,它将绑定到下面使用的任何模板引擎,而不是直接使用Handlebars或spacebars.这是文档中的链接.http://docs.meteor.com/#ui_registerhelper
因此,要从client.js中的任何模板使用访问泛型函数:
UI.registerHelper('stub', function() {
// code
});
Run Code Online (Sandbox Code Playgroud)
显然,文档已经改回使用:
Template.registerHelper('stub', function() {
// code
});
Run Code Online (Sandbox Code Playgroud)
然后在html文件中{{stub}}
用来访问变量.