0
我做了一個jsbin來重現問題,但是這個bug在jsbin上沒有發生。 http://emberjs.jsbin.com/mamunecene/edit?html,js,output。每個助手不會觸發觀察屬性group.cards。[] [jsbin]
我有這樣的雙重每個幫助模板:
{{#each group in groups}}
{{#each card in group.cards}}
{{#play-card card=card group=group}}{{/play-card}}<br/>
{{/each}}
{{/each}}
問題是play-card
組件:
App.PlayCardComponent = Ember.Component.extend({
number: function() {
return this.get('card.number');
}.property('card'),
index: function() {
var card = this.get('card');
var cards = this.get('group.cards');
var idx = cards.indexOf(card);
return idx;
}.property('card', 'group.cards.[]')
});
通知的index
屬性觀察group.cards.[]
。因此,無論何時添加/刪除新卡時,該組中的所有卡都應更新其索引。
在jsbin中工作正常。但是在我的真實例子中,它並沒有開火。那裏可能有什麼問題。
注意,我相信這是同一個問題,因爲我有這樣的解決方法,以強制更新所有的牌組中:
refreshModels: function() {
var cards = this.get('cards');
var tempCards = [];
cards.forEach(function(card) {
tempCards.push(card);
});
tempCards.forEach(function(card) {
cards.removeObject(card);
cards.addObject(card);
});
}
你的代碼是從陣列中添加和刪除卡的?請記住使用.pushObject和.removeObject或數組的觀察者將不會被通知 –