RestangularProvider 和 RestangularConfigurer 的区别
difference between RestangularProvider and RestangularConfigurer
我想在我的模块中添加一个拦截器。
这是初始状态:
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。
但我不太清楚它是如何工作的,以及幕后发生了什么。
你能解释一下吗?
首先没有RestangularConfigurer模块。您只有 Restangular 及其提供者 RestangularProvider.
让我们从 providers 的 angularjs 文档开始。
请特别阅读Provider Recipe,因为我不会在这里重复它。
总而言之,RestangularProvider 只是一个配方,当您在配置模块中决定如何构建 Restangular api 时,还没有 Restangular api,但是您有自己的配方。
另一方面,Restangular 将在主模块启动后启动,因此在配置中实际上还没有 Restangular 模块。
如果您仍然坚持使用 Restangular 而不是它的提供者,您可以在 module#运行 中使用它而不是 模块#配置.
我想在我的模块中添加一个拦截器。
这是初始状态:
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。
但我不太清楚它是如何工作的,以及幕后发生了什么。 你能解释一下吗?
首先没有RestangularConfigurer模块。您只有 Restangular 及其提供者 RestangularProvider.
让我们从 providers 的 angularjs 文档开始。
请特别阅读Provider Recipe,因为我不会在这里重复它。
总而言之,RestangularProvider 只是一个配方,当您在配置模块中决定如何构建 Restangular api 时,还没有 Restangular api,但是您有自己的配方。
另一方面,Restangular 将在主模块启动后启动,因此在配置中实际上还没有 Restangular 模块。
如果您仍然坚持使用 Restangular 而不是它的提供者,您可以在 module#运行 中使用它而不是 模块#配置.