[英]How to use adapters, serializers, models and other tools in Ember more effectively?
[英]Ember serializers & adapters not loading
我有一個使用ember 1.11.1,ember-data 1.0.0-beta.16.1和ember-cli 0.2.1的ember-cli應用程序
我在通過ember g serializer Role
生成的app / serializers / role.js中有一個序列ember g serializer Role
import DS from 'ember-data';
export default DS.RESTSerializer.extend({});
我在app / adapters / application.js中有一個適配器:
import DS from 'ember-data';
export default DS.RESTAdapter.extend({namespace: 'api/1'});
當我加載我的應用程序時,chrome ember檢查器在容器部分中未顯示任何序列化程序或適配器的跡象。
當我在瀏覽器中查看源代碼時,正確的代碼確實出現在/assets/frontend/frontend.js
中:
define('frontend/serializers/role', ['exports', 'ember-data'], function (exports, DS) {
'use strict';
exports['default'] = DS['default'].RESTSerializer.extend({});
});
define('frontend/adapters/application', ['exports', 'ember-data'], function (exports, DS) {
'use strict';
exports['default'] = DS['default'].RESTAdapter.extend({ namespace: "api/1" });
});
Ember應用程序啟動時沒有錯誤,只是當我嘗試添加並使用序列化程序時,沒有任何作用,因為它沒有加載並且沒有出現在Ember容器中-即使當我通過控制台檢查application.registry._defaultContainer.cache
時。
我有另一個簡單的ember-cli應用程序,該應用程序確實在容器中顯示了相同的適配器和序列化器,但我不知道為什么會這樣做,而我的其他應用程序卻沒有。
知道為什么會這樣嗎? 它讓我發瘋。
序列化器和適配器不再單例。 我假設通過查看檢查器中“容器”選項卡的內容,它僅顯示單例對象。
當你說
當我嘗試添加並使用序列化程序時,沒有任何效果
你怎么做到這一點? 現在要做的方法是通過商店訪問它們。
基本上,現在的工作方式是商店(store:main)負責在詢問時返回適配器和序列化器。 第一次要求它創建實例時,每個后續請求都返回相同的單個實例。 它們之所以不是單例,是因為單個商店實例需要維護自己的適配器和序列化器-因此,如果您有兩個商店,則需要能夠創建兩個“個人”適配器。
這次Ember論壇討論可能會對您有所幫助。 此請求是實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.