我使用的是带有余烬数据的余烬cli,一直在拼凑信息,但仍然不起作用。这一切都涉及到家庭模型、路线和模板。我觉得我很接近,但仍然没有雪茄。我把除了标题之外的所有东西都拿出来简化了它。根据我读过的留档,一切都是应该的。
这是我的app. js
import Ember from 'ember';
import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';
import config from './config/environment';
Ember.MODEL_FACTORY_INJECTIONS = true;
var App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver: Resolver
});
loadInitializers(App, config.modulePrefix);
export default App;
这是我的家庭模型:
import DS from 'ember-data';
export default DS.Model.extend({
title : DS.attr('string'),
});
Home.reopenClass({
FIXTURES :[
{
id: 1,
title: 'Sponge B',
},
{
id: 2,
title: 'John David',
},
]
});
这是我的回家路线:
import Ember from 'ember';
//import DS from 'ember-data';
export default Ember.Route.extend({
model: function(){
return this.store.find('Home');
},
});
这是我的家庭模板:
<div id="home">
{{#each}}
<p>{{title}}</p>
{{/each}}
</div>
{{outlet}}
有人能帮我吗?
我认为这与我的模型挂钩有关。这也可能是一个控制器问题。我生成了一个基本的控制器。我应该生成一个arrayController吗?。保存时的主路由给我这个错误消息:model/home. js:第9行,第1行,'Home'未定义。但是当我定义它时仍然有一个问题。我应该广告一个名为适配器的文件夹,然后在其中放入一个名为application.js的文件,然后广告导出默认DS.Fixture Adapter.扩展();。但是当我这样做的时候,它告诉我DS没有定义
看起来您将模型显式导出为Home
,然后您尝试查找没有相同字母大小写的('home')
。
Ember不会自动为你解决case。如果你想使用Home
作为模型,你需要每次都以相同的方式调用它。
您甚至可能需要从'…/model/model-file'导入Home;
如果您想从路由调用它…
一个更容易尝试的方法是使用隐式导出默认Ember. Model.扩展({})
并让enpe-cli使用您的文件名解析类。
http://www.ember-cli.com/#using-modules
您的模板似乎是问题所在。您引用了不存在的item
属性:
<div id="home">
{{#each}}
<p>{{title}}</p>
{{/each}}
</div>
此外,您的模型存在一些语法问题。试试这个:
import DS from 'ember-data';
var Home= DS.Model.extend({
title : DS.attr('string'),
});
Home.reopenClass({
FIXTURES :[
{
id: 1,
title: 'Sponge B',
},
{
id: 2,
title: 'John David',
},
]
});
export default Home;
对于夹具适配器,您可以正确地将application. js添加到适配器文件夹并从“enpe-data”导入DS。
同样在Steve H的家庭模型示例中,FIXTURES的定义不正确。尝试使用:Home. FIXTURES=[…];
确保路径正确。