我一直在工作應用程序中使用EmberModel一段時間,現在想要移回使用EmberData。我從Ember網站的「模型指南」文檔中注意到,在EmberData模型中定義hasMany關係的正確方式已經改變。在早期版本的EmberData的,我定義我的模式是這樣的:EmberData模型定義更改
App.StratItem = DS.Model.extend({
id: DS.attr('string),
name: DS.attr('string'),
quantity: DS.attr('number'),
type: DS.attr('string'),
strategy: DS.belongsTo('strat')
});
App.Strat = DS.Model.extend({
id: DS.attr('string'),
stratName: DS.attr('string'),
sDate: DS.attr('number'),
eDate: DS.attr('number'),
stratItems: DS.hasMany('stratItem',{async:true})
});
如果我正確解讀當前文檔,對於同一型號的正確定義現在應該是:
App.StratItem = DS.Model.extend({
id: DS.belongsTo('strat')
name: DS.belongsTo('strat')
quantity: DS.belongsTo('strat')
type: DS.belongsTo('strat')
});
App.Strat = DS.Model.extend({
id: DS.attr(),
stratName: DS.attr(),
sDate: DS.attr(),
eDate: DS.attr(),
stratItems: DS.hasMany('stratItem')
});
這裏是我的問題:
1)我對文檔的解釋是否正確?
2)如果是,在'StratItem'中已經指定整個'StratItem'模型(即所有變量)是兒童的情況下,爲「StratItem」中的每個變量指定「belongsTo」 'Strat'?
3){async:true}仍然有必要嗎?
我在Ember(版本1.0 rc)和Ember Data的早期版本中使用的代碼上收到了來自Ember的「加載路由時出現錯誤」錯誤消息;上述變化是我迄今爲止唯一的變化。
請查看「模型」的Ember指南中的「顯式反轉」部分http://emberjs.com/guides/models/defining-models/ 似乎表明我需要指定「 belongsTo「中的屬性 - 不是嗎? – ptmoy2
只有當你有多個'belongsTo/hasManys'具有多個相同類型。你有每一個。 – claptimes
文檔中的這一部分真的讓我感到困惑。是App.Comment的文檔屬性中提到的onePost,twoPost,redPost和bluePost? – ptmoy2