2015-10-20 69 views
0

我有一個Ember/EmberData(版本2.1.0)應用程序,它將在主頁上顯示posts(從json載荷創建)列表,路線extractSelect/extractArray在seralizers/application.js沒有被調用

this.route("posts", { path: "/" }); 

然而,從服務器中檢索的posts不是由EmberData即期望的格式,他們沒有一個頂級的命名空間。因此,我創建了一個文件

serializers/application.js 

,其中包括一個extractSingle,並在它的extractArray功能,但他們都不是獲取調用,並且錯誤信息,因此不goig遠

Error while processing route: posts Assertion Failed: You must include an 'id' for undefined in an object passed to 'push

此錯誤之前有一個警告:

`WARNING: "Encountered "0" [and "1"] in payload, but no model was found for model name "0" (resolved model name using [email protected]:posts.modelNameFRomPayloadKey("0") 

我還創建了一個文件

serializers/posts.js 

,幷包括有相同的功能,以及(延長ApplicationAdapter),但他們都不是獲取調用也

從/serializers/application.js代碼

import DS from 'ember-data' 

export default DS.RESTSerializer.extend({ 
     extractSingle: function(store, type, payload, id){ 
      var convertedPayload = {}; 
      convertedPayload[type.modelName] = payload; 
      convertedPayload.id = id; 
      return this._super(store, type, convertedPayload, id} 
     }, 
     extractArray: function(store, type, payload){ 
     var convertedPayload = {}; 
     convertedPayload[type.modelName = payload; 
     return this._super(store, type, convertedPayload); 
     }, 
     serializeIntoHash: function(hash, type, record, options){ 
     //ommitted 
     } 
} 

回答