我通常将Rails用于我的Ember应用程序。但是这次我们选择将API与Ember应用程序分离,因此我正在尝试使用EmberCLI。到目前为止,设置和使用都很可爱。但是,当使用尝试使用灯具时,它不会加载数据。
如this post中所列,我在宣布灯具时使用reopenClass
。
如果我没有覆盖模型,它不会出错,但是Ember检查器也显示没有加载数据。如果我用:
覆盖我的文件// routes/campaigns/index.js
export default Ember.Route.extend({
model: function() {
return this.store.find('campaign');
}
});
然后访问/campaigns
路径,然后收到错误,我收到错误Error while loading route: undefined
。
从what I can find来看,这似乎发生在Ember无法找到数据时。
我的路由器和模型中包含export default
等明显项目:
// app/router.js
Router.map(function() {
this.resource('campaigns', function() {
});
});
// models/campaign.js
var Campaign = DS.Model.extend({
name: DS.attr('string')
});
Campaign.reopenClass({
FIXTURES: [
{ "id": 1, "name": "Campaign #1" },
{ "id": 2, "name": "Campaign #2" }
]
});
我在我刚制作的Rails应用程序中测试了相同的设置,并且它完美地运行。我喜欢人们可以提供的任何见解,因为EmberCLI看起来很轻巧,值得付出努力。
修改:添加我的app.js
文件,回答有关我是否包含DS.FixtureAdapter
的问题:
// Import statements
Ember.MODEL_FACTORY_INJECTIONS = true;
var App = Ember.Application.extend({
modulePrefix: 'nala', // TODO: loaded via config
Resolver: Resolver
});
loadInitializers(App, 'nala');
App.ApplicationAdapter = DS.FixtureAdapter({});
export default App;
答案 0 :(得分:0)
您需要设置位于文件路径adapters/application.js
的应用程序适配器,如下所示:
export default DS.FixtureAdapter.extend({});
见ember-cli Naming Conventions下的第一段。注:如果您正在使用ember-cli并让它们listed in your .jshintrc file,则您不需要导入DS或Ember。