在Ember中以编程方式调用Handlebars帮助程序

时间:2014-02-14 00:22:41

标签: javascript ember.js handlebars.js

我的一个组件需要根据提供的参数动态选择Handlebar助手。

{{dynamic-output value=value helper=helper}}

这样的东西

在组件类中,我想根据提供的帮助器输出值。

我找不到有关以编程方式使用Handlebars助手的更多信息:(

2 个答案:

答案 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}}