是否可以在餘燼商店或Ember App中的其他地方動態選擇適配器?我正在爲我的應用程序應用程序執行脫機行爲,脫機時,應用程序應該使用脫機適配器從瀏覽器存儲中提取數據。在餘燼商店動態選擇餘燼適配器
哪裏會放置這個邏輯的最佳地點?
我知道DS.Store上有一個適配器屬性,您可以在其中指定自定義適配器(http://emberjs.com/api/data/classes/DS.Store.html#property_defaultAdapter),但我無法使其正常工作。
例子:
應用程序/適配器/ custom.js
import Ember from 'ember';
import DS from 'ember-data';
export default DS.Store.extend({
adapter: 'custom',
});
應用程序/ store.js
import Ember from 'ember';
import DS from 'ember-data';
export default DS.Adapter.extend({
pathForType: function(type) {
debugger; //Never goes in here
},
});
什麼我希望做的是一樣的東西這個:
export default DS.Store.extend({
offlineService: Ember.inject.service('offlineService') //Service to detect if app has network connection
adapter: function() {
if (this.get('offlineService.isOffline') {
return 'offlineAdapter'
} else {
return 'application'
}
}.property('offlineService.isOffline')
});
沿着這些線條甚至有可能發生什麼?
謝謝!
如果你想強大的離線行爲考慮'ServiceWorker'。否則,我認爲你正在尋找適配器中的'if'語句。 –