我的一个组件需要根据提供的参数动态选择Handlebar助手。
像{{dynamic-output value=value helper=helper}}
在组件类中,我想根据提供的帮助器输出值。
我找不到有关以编程方式使用Handlebars助手的更多信息:(
答案 0 :(得分:2)
基本上,如果您有一个名为selectBoxOptions
的帮助程序,则可以在帮助程序中使用以下代码来调用该帮助程序:
return Handlebars.helpers.selectBoxOptions(selectedValue, options);
有关详细信息,请参阅此博客文章:http://www.remwebdevelopment.com/blog/javascript/handlebars-calling-a-helper-function-from-another-helper-231.html
答案 1 :(得分:1)
这很容易做到。方法如下:
helperFunctionOne(value){
//Fill with the data manipulation you want for "helperOne"
}
helperFunctionTwo(value){
//Fill with the data manipulation you want for "helperTwo"
}
Ember.Handlebars.regsiterBoundHelper("helperOne", function(value){
return helperFunctionOne(value);
});
Ember.Handlebars.registerBoundHelper("helperTwo", function(value){
return helperFunctionTwo(value);
});
Ember.Handlebars.registerBoundHelper("helperDynamic", function(value, type){
if(type == 1){
return helperFunctionOne(value);
else if(type == 2){
return helperFunctionTwo(value);
}
});
在上面的代码中,我们设置了2个辅助函数和3个帮助器。您现在可以按如下方式调用每个帮助程序:
{{helperOne someValue}}
{{helperTwo someValue}}
{{helperDynamic someValue someType}}