2
votes

Is there a logical not for handlebars bindings with Ember.js?

Suppose I have a ember view that I want to bind to a value

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

I only want the button to be disabled if some_value is false. The code above makes it disabled if some_value is true.

One approach to fixing this would be to have a complementary computed value on the controller. excuse my coffeescript

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

But this seems clunky.

1
Handlebars supports the logical not in if statements through the complementary unless statement. handlebarsjs.com - wmarbut

1 Answers

9
votes

Creating a property with the inverted value is the way to go. You can use binding helper for this: oppositeValueBinding: Ember.Binding.not('some_value').

Also note the Ember.Button is deprecated and you should use the {{action}} helper instead.

UPDATE

In newer versions of Ember.js, it's oppositeValue: Ember.computed.not('some_value').