0

我正在使用 Ember 中的一些可编辑视图,单击此处查看我的 jsbin,并且在我想编辑当前视图时遇到问题。如您所见,问题是一旦我单击编辑单个视图,所有其他事务都变为可编辑,我不希望这样,我希望只有单个项目可编辑,而不是全部。我不知道我做错了什么,另一方面,如果我删除一个,它工作得很好。

在我的控制器中,这是功能:

edit:function(ob){
    this.map(function(item,index){
        if(ob.id===item.id)
            Em.set(item,'editable',true);
        });
    },
4

1 回答 1

1

我认为您的问题源于您要比较的对象上没有 .id 属性这一事实。

尝试这个...

this.forEach(function(item) {
    if (ob === item) {
      Em.set(item, 'editable', true);
    }
  });

尽管我确实在您的代码中注意到了,但是当您将项目添加到列表时,您正在添加另一个编辑输入,并且正在进行一些绑定。但这应该回答您关于为每个单独项目设置编辑的问题。

您的函数将所有项目设置为可编辑的原因是因为 ob.id === item.id,因为它们都不存在,所以这是一个真实的陈述......因此所有项目都设置为可编辑 = true。

狩猎愉快!

于 2014-10-06T23:14:51.323 回答