Sideloading在我們的應用程序中處理hasMany關係,但我無法讓它爲belongsTo關係工作。我試圖使用記錄的DS.RESTAdapter.configure()
方法,但這似乎沒有任何效果。我得到的錯誤是Uncaught Error: assertion failed: Your server returned a hash with the key occasions but you have no mapping for it
。將Ember.js RC1中的belongsTo數據加載到ember-data
請注意,我們不需要指定hasMany
sideload映射,因爲該請求正常工作。 App.Occasion.find();
工作正常。 App.Reminder.find();
引發錯誤。
模型
App.Reminder = DS.Model.extend(
occasion: DS.belongsTo('App.Occasion')
...
)
App.Occasion = DS.Model.extend(Ember.Validations,
reminders: DS.hasMany('App.Reminder')
...
)
Store.js.coffee
DS.RESTAdapter.configure('App.Occasion',
sideLoadAs: 'occasions'
)
App.Store = DS.Store.extend(
revision: 11
adapter: DS.RESTAdapter.create()
)
JSON(適用場合)
{
reminders: [{},...],
occasions: [{reminders: [1,2,...]},...]
}
JSON(用於提醒)
{
reminders: [{occasion_id: 1},...],
occasions: [{},...]
}
作爲解決方法,我正在加載'hasMany'關係並嵌入'belongsTo'關係。我們的應用程序有兩個主屏幕,可以提供不同的數據視圖,因此,在找到真正的解決方案之前,這不應該是性能問題。 – dignoe 2013-02-22 04:38:05