2014-09-23 101 views
1

我正在不斷努力進入Ember,我遇到了一個奇怪的問題:突然間我的商店似乎很笨拙。前一段時間我創建了一個概念驗證項目,一切正常,但現在我的更強大的應用程序(它碰到相同的API端點),我得到了很多不同的行爲。我使用的Django後端與Django REST Framework和rest_framework_ember(https://github.com/ngenworks/rest_framework_ember)以正確的格式獲得json響應(當我用Postman打到端點時,所有格式都很好看)。當訪問在灰燼商店,它的未來與bupkis和使用灰燼調試我得到Ember Store突然不工作

"Uncaught TypeError: Cannot read property 'canCatalogEntriesByType' of undefined " 

我正在灰燼1.7.0和EmberData 0.0.14這是我的app.js:

App = Ember.Application.create({ 
    LOG_TRANSITIONS: true, 
    LOG_TRANSITIONS_INTERNAL: true 
}); 

api_location = 'http://localhost:8000'; 
api_namespace = 'api/v1'; 


App.ApplicationAdapter = DS.RESTAdapter.extend({ 
    host: api_location, 
    namespace: api_namespace, 
    headers: { 
     'Content-Type': 'application/json', 
     'request-source': 'ember' 
    }, 

    ajaxError: function(jqXHR) { 
     var error = this._super(jqXHR); 
     if (jqXHR && jqXHR.status === 400) { 
      var response = Ember.$.parseJSON(jqXHR.responseText), 
      errors = {}, 
      keys = Ember.keys(response); 
      if (keys.length === 1) { 
       var jsonErrors = response[keys[0]]; 
       Ember.EnumerableUtils.forEach(Ember.keys(jsonErrors), function(key) { 
        errors[key] = jsonErrors[key]; 
       }); 
      } 
      return new DS.InvalidError(errors); 
     } else { 
      return error; 
     } 
    } 

}); 

App.ApplicationSerializer = DS.RESTSerializer.extend(); 

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

我一直在我的頭上靠近牆壁打了幾天,現在沒有任何進展,所以對這個主題的任何幫助都會非常有幫助。提前致謝!

編輯:我也注意到restadapter不尊重我設置的「主機」(試圖擊中遠程端點來測試響應中是否有什麼奇怪的東西)......希望這有助於位。

編輯2:進一步,我使Bower使用了ember-data 1.0.0測試版,並且我可以更好地控制主機/命名空間,並且該ember檢查器沒有跳動,但仍然沒有從商店返回。

回答

1

將應用程序從Ember 1.5升級到1.8後,我遇到了同樣的問題。

我最終找到了這個GitHub Issue,這導致我將ember-data更新到最新版本(v1.0.0-beta.11),這爲我解決了這個問題。

「數據」選項卡現在再次顯示在Ember Inspector中,不再顯示Uncaught TypeError: Cannot read property 'canCatalogEntriesByType' of undefined錯誤。