控制器值在ember中的自定义if条件中不可用

时间:2015-03-17 12:32:23

标签: ember.js

我正在尝试在条件帮助器中传递自定义Handlebars中的控制器值。但我无法在帮助者中获得价值

我正在更新我的controller.scope值,它来自我的ajax响应。范围将根据需要而不同,为0,1,2,3。

在我的hbs中,

{{#ifCond controller.scope '==' '0'}}
     //Doing something here.
{{/ifCond}}

{{#ifCond controller.scope '==' '1'}}
     //Doing something here.
{{/ifCond}}

{{#ifCond controller.scope '==' '2'}}
     //Doing something here.
{{/ifCond}}

{{#ifCond controller.scope '==' '3'}}
     //Doing something here.
{{/ifCond}}

在我的帮助班中,

Ember.Handlebars.registerHelper('ifCond', function (temp_v1, operator, temp_v2, options) { // No I18N

var v1,v2;
v1 = Ember.Handlebars.get(this, temp_v1, options);
v2 = Ember.Handlebars.get(this, temp_v2, options);
if( v1 == undefined ){
    v1 = temp_v1;
}
if( v2 == undefined ){
    v2 = temp_v2;
}

switch (operator) {
    case '==':
        return (v1 == v2) ? options.fn(this) : options.inverse(this);
    default:
        return options.inverse(this);
}
});

的console.log(V1); //它打印'范围',但需要像'0'或'1'或'2'或'3'。

我的控制台始终打印v1的原始值,但我需要v1的评估值。

怎么做?

0 个答案:

没有答案