2014-03-31 171 views
8

我應該在用ember-cli生成的Ember JS應用程序中定義燈具嗎?我已經嘗試了很多地方,如app.js,並在一個名爲「燈具」的文件夾中。在哪裏放置夾具?

+0

你有沒有想過這個?我使用ember-cli生成了一個應用程序,並一遍又一遍地閱讀指南,但仍然無法讓它們工作。 – Stoutie

+1

@stoutie我想通了,寫了一個答案。我希望它能幫助你! – stravid

回答

13

定義它周圍挖後,我發現文件app.js改變Ember.MODEL_FACTORY_INJECTIONS = true;Ember.MODEL_FACTORY_INJECTIONS = false;是解決這個問題。

通過this question我還發現了另一個解決方案,您不必更改配置:

而是定義燈具的描述,你必須使用reopenClass

//models/item.js 
var Item = DS.Model.extend({...}); 

Item.reopenClass({ 
    FIXTURES: [ 
    { id: 1, ... }, 
    { id: 2, ... } 
    ] 
}); 

export default Item 

快樂與Ember開發和ember-cli :-)

+0

警告,但值得,幾周之後,我曾與這是由灰燼應用套件默認出廠打針設置爲false造成localStorage的適配器正問題。這導致他們將它設置爲true在HEAD看到(#565)[https://github.com/stefanpenner/ember-app-kit/issues/565] –

-2

我在模型文件夾

//models/item.js 
var Item = DS.Model.extend({...}) 

Item.FIXTURES = [ 
     { 
      id:1, 
      ... 
     } 
]; 

export default Item 
+1

我還沒有在ember-cli中看到過像這樣定義過的模型或夾具。看起來好像'出口默認DS.Model.extends({})'是建議的路線。任何方式來定義這個結構下的燈具? –

+0

我修改了我的代碼,以澄清我在......最後的意思。 我保留它的原因......是因爲如果你使用的是節點服務器,它會是'module.exports = Item' –

+0

@AmrDraz你真的在使用ember-cli生成的應用程序中嘗試過嗎?有些東西因爲它仍然不適合我而缺失。 – Stoutie

0

如果你使用findQuery來獲取你的數據,當使用上面的方法時你會得到這個錯誤:

Error while loading route: Error: Assertion Failed: Not implemented: You must override the DS.FixtureAdapter::queryFixtures method to support querying the fixture store. 

爲了解決這個問題,我爲模型創建了一個適配器,並實現了queryFixtures方法來返回燈具。

#/adapters/[model-name].js 

queryFixtures: function() { 
    return [ { 
     "key" : "value", 
    }, 
    { 
     "key" : "value", 
    }, 
    etc... 
    ] 
    }; 

我只好如上所述在我的模型定義,除了這樣做是爲了reopenClass。事實上,這是我剪切和粘貼的相同數據。這味道有點不好,但是很有效。我相信有更好的方法可以在不重複燈具的情況下做到這一點,我只是不知道它是什麼。

3

而不是使用燈具,我在Ember CLI 0.0.40中做的方式是生成api存根。

ember generate api-stub tasks 

我是一個初學者的Node.js,但是從外觀上來看,它設置了一個Express服務器腳本到/tasks端點響應,與您傳遞給該命令的名稱,格式Ember REST適配器正在期待。然後,您只需使用您的夾具數據填寫空白陣列。容易褻瀆!

我看到的好處是,我不需要稍後重做任何事情,以便與安靜的api集成,讓我更近一步地推出真正的應用程序。

該生成器尚未完整記錄。它只在ember help generate命令中顯示爲一個項目,我很勇敢/絕望/好奇/足以嘗試。

+1

的命令是現今'餘燼克HTTP的模擬<端點-path>'(運行ember-cli 0.1.2-master-f353e3e216) – Timo