2013-10-18 19 views
1

我試圖從內部Laravel PHP API中直觀顯示數據。所以,我的本地主機:8000/API /訂單輸出的JSON如下所示:Ember Data 1.0加載路由時出錯:TypeError:無法設置屬性'typeKey'未定義

[ 
    { 
     "id": "2", 
     "topic": "yusdvhdsh", 
     "data": "" 
    }, 
    { 
     "id": "3", 
     "topic": "praise", 
     "data": "" 
    } 
] 

這裏是我的app.js

App.Router.map(function() { 
     this.route('introduction'); 
     this.route('orders'); 
     this.route('faq'); 
    }); 

    App.Order = DS.Model.extend({ 
     id: DS.attr('string') 
     , topic: DS.attr('string') 
     , data: DS.attr('string') 
    }); 

    App.ApplicationAdapter = DS.RESTAdapter.extend({ 
     namespace: 'api' 
    }); 

    App.FaqRoute = Ember.Route.extend({ 
     model: function() { 
     return this.store.find('order'); 
     } 
    }); 

我定義的路線,順序模式,faqroute和適配器。我需要從本地主機此JSON數據顯示的主題列表:8000/API /訂單顯示在看起來像下面的一個常見問題的模板:

<script type="text/x-handlebars" data-template-name="faq"> 
    <h5>faqs</h5> 
    {{#each model}} 
     {{topic}} 
    {{/each}} 

</script> 

但是,當我嘗試訪問本地主機: 8000 /#/ FAQ它不會顯示任何東西,我碰到下面的錯誤我的控制檯上:

"Assertion failed: Error while loading route: TypeError: Cannot set property 'typeKey' of undefined " 

讓我知道我做錯了......

回答

3

灰燼數據預計這樣

響應
{ 
    "orders": [ 
    { 
    "id": "1", 
    "topic": "Rails is unagi", 
    "data": "Rails is unagi" 
    }, 
    { 
    "id": "2", 
    "topic": "Omakase O_o", 
    "data": "Rails is unagi" 
    }] 
} 

另外,你不應該在類定義定義ID

App.Order = DS.Model.extend({ 
    topic: DS.attr('string'), 
    data: DS.attr('string') 
}); 
+0

感謝您的回答,現在我沒有得到一個錯誤,但我還沒有看到從模型中列出的主題。 – TechyTimo

+0

糟糕,我在試圖在我的模板中顯示記錄的方式中發現問題。它應該是{{#each model}} {{topic}} {{/ each}}我糾正了我的部分問題。你的答案奏效。再次感謝。 – TechyTimo

+0

真棒,順便說一句,Ember數據經歷了RC13和1.0測試版之間的相當大的轉變。在搜索大多數答案之前,我建議先瀏覽一下,因爲很多事情都發生了變化。它會爲你節省很多問題。 https://github.com/emberjs/data/blob/master/TRANSITION.md – Kingpin2k

相關問題