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

我已经尝试使用 Provider 并尝试在 config 函数中进行 http 调用。但显然不允许这样做(只能注入提供程序,我不能在配置函数中使用 $resource.get)。

有谁知道我怎么能做到这一点?基本上:如何向资源添加动态、异步加载的默认参数?

我真的很感谢你的帮助!迈克尔

4

0 回答 0