2015-07-13 100 views
0

我收到一個錯誤,其中ember-data無法將數據加載到Web瀏覽器中的本地存儲。我知道它正確地查詢服務器,因爲它給了我一個200響應,而我正在調試它 - $ E實際上正確地存儲了工作人員(我的模型),但是在幾個emberJS進程之後,它無法將其轉換爲ember-data並存儲到本地數據庫(Web瀏覽器)。使用ember-cli無法加載ember-data

我已經確定我的適配器,序列化器,模型和路由器是有意義的。以下是我對我的適配器,串行器,模型等

適配器 - application.js中:

export default DS.RESTAdapter.extend({ 
     addTrailingSlashes: false, 
     namespace: 'api', 
}); 

串行 - staff.js:

import DRFSerializer from 'ember-django-adapter/serializers/drf'; 

export default DRFSerializer.extend({ 
}); 

路線 - staffs.js :

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model: function(){ 
     return this.store.find('staff'); 
    } 
}); 

而且最後我的模型 - staff.js

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    //inherited properties gotten from Members.model 
    userName: DS.attr('string'), 
    userFirstName: DS.attr(), 
    userLastName: DS.attr() //not sure if this needs to be included 
    .... 
}); 

如果你們任何人都好奇,這是服務器返回給我燼:

{ 
    "staffs": [ 
     { 
      "id": 1, 
      "userName": "macmania", 
      "userFirstName": "macmania", 
      "userLastName": "macmania", 
      "emailAddress": "macmania" 
     }, 
     { 
      "id": 2, 
      "userName": "macmania123", 
      "userFirstName": "macmania123 ", 
      "userLastName": "macmania123", 
      "emailAddress": "[email protected]" 
     }, 
     { 
      "id": 3, 
      "userName": "macmania123123123", 
      "userFirstName": "macmania123123", 
      "userLastName": "Smith", 
      "emailAddress": "[email protected]" 
     }, 
     { 
      "id": 4, 
      "userName": "macmania123", 
      "userFirstName": "Jolie", 
      "userLastName": "Claire", 
      "emailAddress": "[email protected]" 
     } 
    ] 
} 
+0

檢查多元化。 Ember有嚴格的規則。它可能認爲「員工」的複數是「員工」,從而阻止他們識別根員鑰匙「員工」。您可能需要添加自己的多元化規則。 – 2015-07-13 03:40:48

+0

@torazaburo,你能指出我如何包含.configure?我正在使用ember cli,我不確定如何使用導出默認DS.RESTAdapter.extend({..})和複數形式來執行配置。謝謝! – macmania314

+0

@torazaburo,進一步查看後。我不認爲這是多元化。我運行了命令ember generate resource staffs,它給了我模型的staff.js。 – macmania314

回答

1

這將是一個「壞」的回答,因爲我不知道原因是什麼。

經過調試,苦心經歷瞭如何從服務器加載數據到ember-data以及監控承諾並確保我的適配器工作正常的一步一步,我發現在處理過程中它 - 它出於某種原因沒有將它連接到模型上。

在嘗試了一些無法使用的'技巧'後,[我已經改變了它幾次來調整它,我不記得這些改變,但他們沒有工作]。所做的工作是將ember-data beta 18更改爲1.13.5以及將ember從1.12更改爲1.13.3,刪除dist,node_modules和bower_install,然後執行全新的nower安裝以及ember構建。來自服務器的數據現在被加載到本地存儲。