RestangularProvider和RestangularConfigurer之间的区别

时间:2015-02-13 13:44:26

标签: angularjs restangular

我想在我的模块中添加一个拦截器。

这是初始状态:

app.config(function ($stateProvider, $urlRouterProvider,RestangularProvider)  {

   RestangularProvider.setBaseUrl('/app/services');

});

我修改了这个:

app.config(function ($stateProvider, $urlRouterProvider, RestangularProvider, RestangularConfigurer)     {

  RestangularProvider.setBaseUrl('/app/services');

  RestangularConfigurer.addFullRequestInterceptor(function (element, operation, route, url, headers, params, httpConfig) {

    if (operation === 'get'){
        console.log("RestangularProvider: call to get");
        params.ts= new Date();
    }

    return {
        element: element,
        headers: headers,
        params: params,
        httpConfig: httpConfig
    };

  });
});

但是,我添加了一个错误:

 Error: [$injector:unpr] Unknown provider: RestangularConfigurer

所以我用RestangularProvider替换了RestangularConfigurer。

但我不清楚它是如何运作的,以及幕后发生的事情。 你能解释一下吗?

1 个答案:

答案 0 :(得分:3)

首先,没有 RestangularConfigurer 模块。您只有 Restangular 及其提供商 RestangularProvider

让我们从providers的angularjs文档开始。

请特别阅读提供商食谱,因为我在这里不再重复。

作为总结,RestangularProvider只是一个配方,应该如何构建Restangular api,因为你在配置模块中确定它还没有Restangular api,但你有你的食谱。

另一方面,在主模块引导后,Restangular将被引导,因此在配置中实际上没有 Restangular 模块。

如果您仍然坚持使用 Restangular 而不是其提供商,则可以在模块#stall 中使用它,而不是模块#config