2014-10-06 39 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