2015-04-26 40 views
2

我試圖從api服務器獲取數據,並將ember-data添加到ember-starter-kit中。Ember-data無法讀取未定義的屬性「長度」

App = Ember.Application.create(); 

App.Router.map(function() { 
    // put your routes here 
}); 

App.ApplicationAdapter = DS.RESTAdapter.extend({ 
    namespace: 'emberjs/ember.js', 
    host  : 'https://api.github.com/repos' 
}); 

App.Store = DS.Store.extend({ 
    adapter: 'App.ApplicationAdapter' 
}); 

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

App.Pull = DS.Model.extend({ 
    url : DS.attr(), 
    title : DS.attr(), 
    body : DS.attr() 
}); 

給予同樣的錯誤爲每個請求獲得。然後我嘗試與github,它給出了相同的錯誤。

的API,我連接:當返回多個結果,在這種情況下pulls,即

{ 
    "pulls": [...] 
} 

Github api

Error while processing route: index Cannot read property 'length' of undefined TypeError: Cannot read property 'length' of undefined

+0

在哪一行中示出了錯誤? –

+0

處理路由時出錯:index無法讀取未定義的屬性「長度」TypeError:無法讀取未定義的屬性「長度」 –

回答

4

灰燼期望一個pluralised根對象當你使用的API時你不要控制你需要改變數據到預期的格式與一個修改串行器像這樣:

個/app/serializers/pull.js

import DS from "ember-data"; 

export default DS.RESTSerializer.extend({ 
    normalizePayload: function(payload) { 
     if(Array.isArray(payload)) { 
      return {"pulls": payload }; 
     } 
     return payload; 
    } 
}); 

上串行信息: http://emberjs.com/api/data/classes/DS.RESTSerializer.html

相關問題