2016-07-09 4 views
0

Wenn ich verlängern Adapter in app/Adapter/application.jsEmber: Wie man RESTAdapter umwandelt/erweitert, um es zur Seite zu machen?

let appAdapter = DS.RESTAdapter.extend({ 
    ajax: function(url, method, hash) { 
    hash = hash || {}; 
    hash.crossDomain = true; 
    hash.xhrFields = { 
     withCredentials: true 
    }; 
    return this._super(url, method, hash); 
    }, 
}); 

export default appAdapter.reopen(config.adapterSettings); 

es wird nach wie vor durch modellspezifische Adapter ersetzt werden, die ich auch haben.

Ich habe ein paar spezifischen Adapter, zum Beispiel: app/Adapter/testpost.js

export default DS.RESTAdapter.extend(myTemplates, { 
    myTemplate: `${host}/${dir}/testpost`, 
}); 

Vorerst es funktioniert, ich jeden von ihnen mit dem gleichen Stück Code erweitert, für Beispiel app/Adapter/testpost.js wurde:

let testpostAdapter = DS.RESTAdapter.extend({ 
    ajax: function(url, method, hash) { 
    hash = hash || {}; 
    hash.crossDomain = true; 
    hash.xhrFields = { 
     withCredentials: true 
    }; 
    return this._super(url, method, hash); 
    }, 
}); 

export default testpostAdapter.extend(myTemplates, { 
    myTemplate: `${host}/${dir}/testpost`, 
}); 

Die Frage: Wie man RESTAdapter für alle Ember und für alle spezifischen Adapter gleichzeitig erweitert/umschreibt.

Versucht, in app/app.js zu erweitern, funktioniert nicht so.

+2

Verlängerung der Anwendung Adapter funktionieren sollte? Haben Sie versucht,'AdapterAdapter von './application' zu importieren 'in' adapter/testpost.js' und es zu erweitern 'export default ApplicationAdapter.extend ({})' – Altrim

+0

Vielen Dank, Sie haben Recht. –

Antwort

1

Sie sollten nicht direkt von DS.RESTAdapter. in einem modellspezifischen Adapter ableiten, eher von Ihrem Anwendungsadapter ableiten. So ersetzen Sie diese:

import DS from 'ember-data'; 
export default DS.RESTAdapter.extend({...}) 

in Ihrem Modell spezifische Adapter mit diesem:

import ApplicationAdapter from './application'; // assuming not in pod structure 
export default ApplicationAdapter.extend({...}); 
+0

Danke, funktioniert. –

Verwandte Themen