ブール値をtrueまたはfalseに設定する.set()メソッドがあることは知っていますが、それ以外の.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){
}
}
ブール値の切り替えが必要です。または、以下のように関数を変更できます。
isEditing:false,
actions: {
toggleEditing : function(category){
category.set('isEditing', !category.isEditing);
console.log(this.get('isEditing'));
}
}
@gravityplanxの答えは素晴らしいです。
この方法論はコントローラーを超えて機能することも付け加えておきます。
たとえば、モデルにPost
オブジェクトがある場合、コントローラーから更新できます。オブジェクトをコントローラーアクションに渡すだけです。
switch_readiness(post) {
post.toggleProperty('isPublishReady');
}