我在开发应用程序时使用 FixtureAdapter 在本地加载数据。
这些是我的带有夹具数据的页面模型:
App.Page = DS.Model.extend({
name : DS.attr('string'),
parent : DS.belongsTo('App.Page'),
subpages : DS.hasMany('App.Page')
});
App.Page.FIXTURES = [{
id: 1,
name: 'Home',
subpages: [ 2, 3, 4 ]
},{
id: 2,
name: 'About',
parent: 1
},{
id: 3,
name: 'Contact',
parent: 1
},{
id: 4,
name: 'Search',
parent: 1
},{
id: 5,
name: 'Blog',
parent: 2
}];
这是返回我的 Fixture 中所有 Page 对象的代码
App.PagesRoute = Ember.Route.extend({
model: function() {
return App.Page.find();
}
});
这是我的应用商店:
App.store = DS.Store.create({
revision : 11,
adapter: DS.FixtureAdapter
});
这很好用,但是如何返回根页面?
当我更改return App.Page.find()
时,App.Page.findQuery(App.Page,{ id: 1 })
我收到以下错误:
Uncaught Adapter is either null or does not implement 'findQuery' method
- 更新 -
当我更改return App.Page.find()
时,App.Page.find({ name: 'Home' })
我收到以下错误:
Uncaught TypeError: Cannot call method '_create' of undefined
我想那是因为我的数据当时没有加载。但我认为 Ember 会为我处理这个问题。