Ember.js Handlebars bindings logical not

ember.js, javascript

Solution

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')`.

Problem

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.

Original source