次のようなリソース クラスがいくつかあります。
.factory('SettingsResource', function (DefaultResource) {
var endpoint = '/settings';
var params = {};
var options = {};
return new DefaultResource(endpoint, params, options);
}
すべてのリソース クラスは DefaultResource を「ベース」として使用します。
.factory('DefaultResource', function ($resource, UserResource) {
var baseURL = 'rest',
baseParams = {
currentRole: function () {
return "Admin";
}
},
baseOptions = {
}
return function (endpoint, params, options) {
...
// Code ommited
};
}
ご覧のとおり、すべてのリクエストに追加する必要がある「currentRole」というデフォルト パラメータがあります。
現在、パラメーターはハードコードされていますが、実際には http 呼び出しから取得する必要があります。たとえば、次のようになります。
currentRole: function () {
$resource.get('rest/currentRole').$then(function (response) {
return response.data;
});
}
私はすでにプロバイダーを使用して、構成関数内で http 呼び出しを試みました。しかし、明らかにこれを行うことは許可されていません (注入できるのはプロバイダーのみです。config-function 内で $resource.get を使用することはできません)。
どうすればこれを行うことができるか、誰にも手がかりがありますか? 基本的に、非同期にロードされる動的なデフォルト パラメータをリソースに追加するにはどうすればよいですか?
よろしくお願いします。マイケル