这可能是一个非常简单的问题,所以如果我提前弄乱了这个论坛,我深表歉意。
我正在显示共享相同模型和控制器的项目列表。我通过<button {{ action 'edit' }}>
每个项目旁边的 a 使这些项目可编辑,该项目在控制器中切换属性“isEditable”的布尔值。但是,单击此按钮会导致列表中的所有项目变为可编辑,因为它们都共享控制器属性“isEditable”。期望的效果是一次编辑单个项目,而不是一次编辑所有项目。
我的模板的简化版本如下所示:
{{#if isEditing}}
<p>{{input type="text" value=title}}</p>
<button {{action 'doneEditing'}}>Done</button>
{{else}}
<span class="title">{{title}}</span>
<button {{action 'edit'}}><span class="edit"</span></button>
{{/if}}
控制器看起来像这样
App.ItemController = Ember.ArrayController.extend({
isEditing : false,
actions : {
edit : function(){
this.set('isEditing', true);
},
doneEditing : function(){
this.set('isEditing', false);
},
}
});
有谁知道如何做到这一点?是因为每个项目都共享“isEditable”属性吗?如果是这样,我该如何解决这个问题?我不想把它放到模型中,因为它纯粹是一个展示的东西,即使我知道我可以让它工作。
谢谢 :)