2014-10-03 47 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 = [ ... ];

確保路徑正確。

相關問題