Javascript / Ember - 切换变量的布尔值

时间:2014-02-21 18:18:45

标签: javascript html5 ember.js boolean toggle

我知道有.set()方法将boolean设置为true或false但我想知道是否有类似.set()的方法,除非它切换布尔值。

在这种情况下,布尔值isEditing被设置为“true”。

isEditing:false,
actions: {
  edit: function(category){
    category.set('isEditing', true);
    console.log(this.get('isEditing'))
  },
}

这是html

{{#if isEditing}}
  <div class="category-text"> 
    {{view Ember.TextField valueBinding=name action="turnOffEditMode"}}
  </div>
{{else}}
  <div class="category-text"> 
    {{#linkTo 'category' this}}
      {{name}}
    {{/linkTo}}
  </div>
{{/if}}  

3 个答案:

答案 0 :(得分:47)

this.toggleProperty('propertyName');

修改:jsbin for proof

答案 1 :(得分:4)

isEditing:false,
actions: {
    edit: function(category){
        category.set('isEditing', !category.isEditing);
        console.log(this.get('isEditing'))
    }
    toggleEditing : function(category){
    }
}

切换布尔值是您所需要的。或者你可以改变你的功能如下。

isEditing:false,
actions: {
    toggleEditing : function(category){
        category.set('isEditing', !category.isEditing);
        console.log(this.get('isEditing'));
    }
}

答案 2 :(得分:0)

@ gravityplanx的答案很棒。

我只想补充一点,这种方法也适用于控制器之外。

例如,如果我的模型有一个Node对象,我可以从控制器更新它。我只需要将对象传递给控制器​​动作。

Post