答案 0 :(得分:13)
您应该将逻辑移动到控制器
App.SomeController = Em.Controller.extend({
foo: true,
bar: false,
fooOrBar: Em.computed.or('foo', 'bar')
});
将模板逻辑保持在最低限度
{{#if fooOrBar}}
答案 1 :(得分:11)
答案 2 :(得分:-2)
您可以创建自定义Handlebar辅助函数来检查条件运算符。
Ember.Handlebars.registerHelper('ifCond', function (temp_v1, operator, temp_v2, options) {
var v1,v2;
v1 = Ember.Handlebars.get(this, temp_v1, options);
v2 = Ember.Handlebars.get(this, temp_v2, options);
switch (operator) {
case '||':
return (v1 || v2) ? options.fn(this) : options.inverse(this);
case '&&':
return (v1 && v2) ? options.fn(this) : options.inverse(this);
case '==':
return (v1 == v2) ? options.fn(this) : options.inverse(this);
default:
return options.inverse(this);
}
});
您可以在模板中将其称为
{{#ifCond foo '||' bar}}
<div>Conditional helpers works </div>
{{/ifCond}}