0

次のようなリソース クラスがいくつかあります。

.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 を使用することはできません)。

どうすればこれを行うことができるか、誰にも手がかりがありますか? 基本的に、非同期にロードされる動的なデフォルト パラメータをリソースに追加するにはどうすればよいですか?

よろしくお願いします。マイケル

4

0 に答える 0