2012-07-26 66 views
2

是否有一个逻辑不处理与Ember.js绑定的handlebars?Ember.js把手绑定逻辑不是

假设我有,我想绑定到一个值

{{Ember.Button disabledBinding="view.controller.some_value"}} 

我只是想,如果some_valuefalse按钮被禁用烬视图。如果some_valuetrue,上面的代码将禁用它。

解决此问题的一种方法是在控制器上有一个互补的计算值。 原谅我的CoffeeScript

opposite_some_value: (-> 
    if @get('some_value') == true 
     return false 
    else 
     return true 
).property 'some_value' 

但这似乎笨重。

+0

Handlebars通过互补的'unless'语句支持'if'语句中的逻辑。 http://handlebarsjs.com/ – wmarbut 2012-08-06 18:57:02

回答

9

用倒数值创建一个属性是一条路。你可以使用绑定助手来做到这一点:oppositeValueBinding: Ember.Binding.not('some_value')

另请注意Ember.Button已被弃用,您应该使用{{action}}辅助器。

UPDATE

在Ember.js的新版本,它的oppositeValue: Ember.computed.not('some_value')

+1

那不是一个计算的属性。多数民众赞成在与变形的约束力。 – hvgotcodes 2012-07-26 16:40:31

+0

@hvgotcodes你是对的。我会回顾一下答案。 – pangratz 2012-07-26 16:41:52

+0

无赖...希望它可以在车把内处理。谢谢! – wmarbut 2012-07-26 16:59:17