不能相信這麼簡單的東西是給我這麼多格雷夫!無論如何,我有兩個模型:灰燼數據,沒有的hasMany更新
App.Basket = DS.Model.extend({
fruits: DS.hasMany('App.Fruit')
});
App.Fruit = DS.Model.extend({
basket: DS.belongsTo('App.Basket')
});
我拿一個ID爲1的籃子,並沒有指定任何fruit_ids。然後,我拿一個basket_id爲1的水果。fruit.get('basket')
返回籃子就好了。但是,basket.get('fruits')
是空的,它從不更新。
在籃下JSON指定fruit_ids不如在實際應用實際籃子可能有數千至數百萬的水果,用戶將不會需要來接他們所有可接受的解決方案。
我已經嘗試添加上App.Fruit
如下:
didLoad: function() {
this.get('basket').get('fruits').pushObject(this);
}
這對於第一負載正常工作。但是,如果燼數據再次嘗試獲取數據,那麼你只得到:
Uncaught Error: Attempted to handle event `loadedData` on <App.Fruit:ember353:3> while in state rootState.loaded.updated.uncommitted. Called with undefined
更改didLoad
到:
didLoad: function() {
this.get('basket').get('fruits').pushObject(this);
this.get('stateManager').send('becameClean');
this.get('stateManager').send('finishedMaterializing');
}
刪除所有錯誤。但是,即使當ember嘗試重新獲取數據(例如,在訪問另一條路線並返回之後),didLoad也不會再次被調用。
花在這個了好幾個小時,我不明白這麼簡單的東西是如何採取了這麼多我的時間。所有我想要做的事情都是在獲取新果子時更新籃子上的hasMany!