2014-10-03 31 views
6

我遇到了一個理解預期的Ember.Component隔離行爲的問題。我的理解是,呈現同一組件的多個實例不應導致組件之間共享屬性。Ember組件屬性不起作用孤立

我看到相反的行爲,其中更新組件上的屬性(從組件本身內)更新該組件當前在頁面上呈現的其他實例上的相同屬性。

這是問題的一個例子:http://jsbin.com/naworoyimoto/1/edit

這是bug還是我誤解隔離在Ember.Component是如何工作的?

+0

[在灰燼成分共享狀態(的可能重複http://stackoverflow.com/questions/19070843/shared-state-in-ember -component) – sunrize920 2014-10-03 17:29:05

回答

16

我認爲你會體驗JavaScript對象引用的有趣本質。我碰到了這個問題,事實證明,因爲我在類定義中的屬性上定義了數組,導致該類的所有實例都引用了同一個數組對象。

我通常會解決這個問題的方法是通過將我想成爲數組的屬性設置爲null,然後在init方法中設置數組。這可以確保每個實例都創建自己的數組,而不是與其他實例共享數組引用!

這是我您的jsbin示例的叉施加我修復:http://jsbin.com/xulidefikuyu/1/

+0

現貨答覆,謝謝! – 2016-04-07 18:49:24