我已经注册了这样一个全局函数:
Handlebars.registerHelper('dialogBoxOptions', function (callbackFunctionName){
return {
callBack: callbackFunctionName
};
});
Run Code Online (Sandbox Code Playgroud)
但是当我尝试按下面的方式访问它时,我得到的是dialogBoxOptions没有定义
Template.myLlist.helpers({
dOpt: dialogBoxOptions('dlgCB')
});
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个全局把手助手和常规的javascript函数,但得到了相同的结果.
Aks*_*hat 20
您无法以这种方式访问车把助手:您可以在模板中访问它们:
<template name="myList">
{{dialogBoxOptions.callback 'something'}}
</template>
Run Code Online (Sandbox Code Playgroud)
如果你想像现在一样在助手中访问它,你应该注册一个全局方法.你可以把它放在像这样的文件中/lib/helpers.js
dialogBoxOptions = function (callbackFunctionName){
return {
callBack: callbackFunctionName
};
}
Run Code Online (Sandbox Code Playgroud)
此外,如果您想创建一个全局模板帮助器,语法现在是:
Template.registerHelper("dialogBoxOptions", function (param2) {
return true;
});
Run Code Online (Sandbox Code Playgroud)
Jim*_*ugh 13
现在有一种方法可以访问已注册的全球帮助者.
//Register the helper
UI.registerHelper("functionName", function (param1, param2) {
return true;
});
//Use the helper elsewhere
var result = UI._globalHelpers('functionName')(param1, param2);
Run Code Online (Sandbox Code Playgroud)
在Meteor 1.0+中,现在看起来像创建全局帮助程序的语法:
Template.registerHelper('functionName',function(param1,param2){
... your code here ...
})
Run Code Online (Sandbox Code Playgroud)
然后在客户端的任何地方使用它:
var result = Blaze._globalHelpers.functionName(param1, param2);
Run Code Online (Sandbox Code Playgroud)
OTOH,UI对象没有出现在当前的文档中,所以我想知道这个用法是否有福.