2014-10-03 48 views
1

我正在使用ember cli与ember数据并将信息拼凑在一起,但它仍然无法工作。这一切都涉及到家庭模式,路线和模板。我觉得我很接近但仍然没有雪茄。除了标题之外,我将所有内容都简化了。根据我读过的文档,一切都是如此。ember-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 ?.保存的主路线给我这个错误信息: models/home.js:line 9,col 1,'Home'is not defined。但是当我定义它时仍然存在问题。我是否应该打开一个名为adapters的文件夹,然后在其中放入一个名为application.js的文件,然后导出默认的DS.FixtureAdapter.extend(); 。但是当我这样做,它告诉我DS没有定义

回答

0

您的模板似乎是问题。你引用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; 
+0

这是一个错字。即使我改变了这一点。它仍然不起作用 – 2014-10-03 12:49:31

+0

您应该对模型进行更改。你应该在运行你的代码时看到控制台出现错误,比如'ReferenceError:Home is not defined' – 2014-10-03 16:10:39

0

看起来你明确地导出您的模型作为Home,然后你想find('home')不具有相同的字母大小写。

Ember不会自动为您解决问题。如果你想使用Home作为模型,你需要每次都以相同的方式调用它。

,如果你想从路由调用它你甚至可能需要import Home from '../models/model-file'; ..

一种更容易的事情,试图将使用隐式export default Ember.Model.extend({}),让烬-CLI使用文件名解析类。

http://www.ember-cli.com/#using-modules

+0

在所有文档中我已经阅读过,而且在我编写的其他程序中,find方法中的任何内容都不会大写。如果你的灯具是Home.Products.FIXTURES。您找不到像这样的产品('产品')它是发现('产品') – 2014-10-03 17:22:43

0

对于灯具适配器你是从“烬数据”添加的application.js到适配器文件夹和进口DS正确的。

同样在Steve H的家庭模型的例子中,FIXTURES的定义是不正确的。尝试使用: Home.FIXTURES = [ ... ];

确保路径正确。

相关问题