2016-07-09 25 views
0

私はアプリ/アダプタにアダプタを拡張する場合/Ember:RESTAdapterをサイト全体に書き直し/拡張する方法

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); 

が、それはまだ私も持っているモデル固有のアダプタが優先されますapplication.js。

は、私には、例えば、いくつかの特定のアダプタを持っている: アプリ/アダプタ/ testpost.js今の

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

はそれを動作させるために、私は、コードの同じ部分でそれらのそれぞれを延長しました例アプリ/アダプタ/ testpost.jsになった:

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`, 
}); 

質問: すべてのEmberとすべての特定のアダプタのRESTAdapterを一度に拡張/書き換えする方法。

app/app.jsに拡張しようとしましたが、そのようには動作しません。

+2

:これであなたのモデル固有のアダプタで

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

:だからこれを置き換えますか? 'adapter/testpost.js'の './application';'からApplicationAdapterをインポートしようとしましたが、 'export default ApplicationAdapter.extend({}) 'を拡張しようとしましたか? – Altrim

+0

ありがとうございます。 –

答えて

1

は、モデル固有のアダプターでDS.RESTAdapter.から直接派生するのではなく、アプリケーション・アダプターから派生します。アプリケーションアダプタが動作するはずの拡張

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

ありがとうございました。 –

関連する問題