2014-10-06 63 views
0

我正在研究Ember中的一些可编辑视图,点击here to see my jsbin,我随时想要编辑当前视图。正如你可以看到的问题是,一旦我点击编辑单个视图,所有其他交易变得可编辑,我不希望这样,我希望只有一个项目变得可编辑,而不是所有的。我不知道我做错了什么,从另一方面来说,如果我删除了一个,那么效果很好。如何在编辑Ember中的视图时停止事件冒泡

在我的控制器

这是功能:

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

回答

1

我觉得你的问题是从事实,那就是你要比较你的对象没有.ID财产所产生。

尝试......

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

虽然我也注意到在你的代码,您要添加,当你的项目添加到列表中的其他编辑器输入,并为一些有约束力的事情。但是,这应该回答你设置编辑每个单独项目的问题。

你的函数将所有项目设置为可编辑的原因是因为ob.id === item.id,因为它们都不存在,所以它是一个真理语句...因此所有项目都设置为editable = true。

快乐狩猎!

+0

是的问题是,没有一个唯一的ID,所以这就是为什么我编辑当代的所有项目,我已经试过你的代码,但仍然无法正常工作。如果你可以编辑我的jsbin这将是很好的 – Koala7 2014-10-07 06:52:03

+0

更正,谢谢你的回答:http://jsbin.com/tegomo/4/edit – Koala7 2014-10-07 07:04:13

+0

相同的更新显然... – Koala7 2014-10-09 22:32:36