【问题标题】:Ember.js Handlebars bindings logical notEmber.js Handlebars 绑定逻辑不
【发布时间】:2012-07-26 16:16:01
【问题描述】:

与 Ember.js 的车把绑定是否符合逻辑?

假设我有一个想要绑定到值的 ember 视图

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

如果some_valuefalse,我只希望禁用该按钮。如果some_valuetrue,上面的代码会禁用它。

解决此问题的一种方法是在控制器上设置一个互补的计算值。 请原谅我的咖啡脚本

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

但这看起来很笨重。

【问题讨论】:

  • Handlebars 通过补充的unless 语句支持if 语句中的逻辑非。 handlebarsjs.com

标签: javascript ember.js


【解决方案1】:

创建具有反转值的属性是可行的方法。您可以为此使用绑定助手:oppositeValueBinding: Ember.Binding.not('some_value')

另请注意 Ember.Button 已弃用,您应该改用 {{action}} 帮助程序。

更新

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

【讨论】:

  • 那不是计算属性。那是与转换的绑定。
  • 无赖...希望它可以在车把内处理。谢谢!
  • 您不应该将这样的逻辑推送到模板中。这应该在视图/控制器中处理。
  • @pangratz 我通常同意逻辑不应该在模板中,但是取一个反值几乎不重要。我认为这不会比模板中的 if 语句更复杂。
  • 现在绑定反转值的方式如下:oppositeValueBinding: Ember.computed.not('some_value')。见github.com/emberjs/ember.js/blob/master/packages/ember-metal/…
猜你喜欢
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-12
  • 2012-03-07
  • 2013-09-28
  • 2012-10-12
相关资源
最近更新 更多