我使用FixtureAdapter在開發應用程序時在本地加載數據。使用findQuery和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
}];
這是返回我的燈具的所有頁面對象的代碼
App.PagesRoute = Ember.Route.extend({
model: function() {
return App.Page.find();
}
});
這是我App.store:
App.store = DS.Store.create({
revision : 11,
adapter: DS.FixtureAdapter
});
這很好,但我該如何返回根頁面?
當我App.Page.findQuery(App.Page,{ id: 1 })
我碰到下面的錯誤更改return App.Page.find()
: Uncaught Adapter is either null or does not implement 'findQuery' method
- 更新 -
當我App.Page.find({ name: 'Home' })
我碰到下面的錯誤更改return App.Page.find()
: Uncaught TypeError: Cannot call method '_create' of undefined
我猜測這是因爲我的數據在那一刻沒有加載。但我認爲Ember會爲我處理這件事。
['FixtureAdapter#findQuery'(https://github.com/emberjs /data/blob/master/packages/ember-data/lib/adapters/fixture_adapter.js#L108-L120)調用['FixtureAdapter#queryFixtures'](https://github.com/emberjs/data/blob/master/ packages/ember-data/lib/adapters/fixture_adapter.js#L42-L47),它具有註釋「*實現此方法以查詢燈具數據*」。因此,在調試中,在Store#findQuery處設置一個斷點,並檢查你從['this.adapterForType(type)'](https://github.com/emberjs/data/blob/master/packages/ember -data/lib/system/store.js#L745-L751) – MilkyWayJoe 2013-02-15 14:29:15
另外,你如何定義你的應用程序'Store'? – MilkyWayJoe 2013-02-15 14:40:13