我知道有.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}}
答案 0 :(得分:47)
this.toggleProperty('propertyName');
答案 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