我已经注册了这样一个全局函数:
Handlebars.registerHelper('dialogBoxOptions', function (callbackFunctionName){
return {
callBack: callbackFunctionName
};
});
但当我尝试按如下方式访问它时,我得到了dialogBoxOptions未定义
Template.myLlist.helpers({
dOpt: dialogBoxOptions('dlgCB')
});
我已尝试将其作为全局手柄助手和常规javascript函数,但得到的结果相同。
答案 0 :(得分:20)
您无法以这种方式访问车把助手:您可以在模板中访问它们:
<template name="myList">
{{dialogBoxOptions.callback 'something'}}
</template>
如果您想在助手中访问它,就像现在一样,您应该注册一个全局方法。您可以将其放在/lib/helpers.js
dialogBoxOptions = function (callbackFunctionName){
return {
callBack: callbackFunctionName
};
}
此外,如果您想创建一个全局模板助手,现在的语法是:
Template.registerHelper("dialogBoxOptions", function (param2) {
return true;
});
答案 1 :(得分:13)
现在有办法访问已注册的全球帮助者。
//Register the helper
UI.registerHelper("functionName", function (param1, param2) {
return true;
});
//Use the helper elsewhere
var result = UI._globalHelpers('functionName')(param1, param2);
答案 2 :(得分:7)
使用Template.registerHelper(name, function)
如Meteor Documentation
答案 3 :(得分:6)
在Meteor 1.0+中,现在看来是创建全局帮助程序的语法:
Template.registerHelper('functionName',function(param1,param2){
... your code here ...
})
然后在客户端的任何地方使用它:
var result = Blaze._globalHelpers.functionName(param1, param2);
OTOH,UI对象没有出现在当前documentation中,所以我想知道这种用法是否有福。