Javascript/Ember - переключение логического значения переменной

Я знаю, что существует метод .set(), чтобы установить логическое значение 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}}  

Ответы

Ответ 2

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

Переключение булевского значения - это то, что вам нужно. Или yu может изменить вашу функцию, как показано ниже.

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

Ответ 3

Ответ на

@gravityplanx велик.

Я просто хочу добавить, что эта методология работает и за контроллером.

Например, если моя модель имеет объект Post, я могу обновить ее с контроллера. Мне просто нужно передать объект в действие контроллера.

switch_readiness(post) {
    post.toggleProperty('isPublishReady');
}