提问者:小点点

enpe-cli不会从数据存储中的模型渲染


我使用的是带有余烬数据的余烬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没有定义


共3个答案

匿名用户

看起来您将模型显式导出为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=[…];

确保路径正确。