Ответ 1
this.toggleProperty('propertyName');
Изменить: jsbin для подтверждения
Я знаю, что существует метод .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}}
this.toggleProperty('propertyName');
Изменить: jsbin для подтверждения
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'));
}
}
@gravityplanx велик.
Я просто хочу добавить, что эта методология работает и за контроллером.
Например, если моя модель имеет объект Post
, я могу обновить ее с контроллера. Мне просто нужно передать объект в действие контроллера.
switch_readiness(post) {
post.toggleProperty('isPublishReady');
}