是否可以将RestAngular.setBaseUrl用于两个api接入点?

时间:2014-03-08 20:56:18

标签: angularjs rest restangular

是否可以使用带有2种不同API的Restangular? 我希望两者都有 setBaseUrl()

2 个答案:

答案 0 :(得分:30)

只需创建两个或更多Restangular服务并根据需要配置它们,并为您的模块注入您想要使用的模块......

<强>更新

来自restangular github页面的代码

// Global configuration
app.config(function(RestangularProvider) {
   RestangularProvider.setBaseUrl('http://www.global.com');
   RestangularProvider.setRequestSuffix('.json');
});

//First Restangular Service
app.factory('FirstRestangular', function(Restangular) {
   return Restangular.withConfig(function(RestangularConfigurer) {
      RestangularConfigurer.setBaseUrl('http://www.first.com');
   });
});

//Second Restangular Service
app.factory('SecondRestangular', function(Restangular) {
   return Restangular.withConfig(function(RestangularConfigurer) {
      RestangularConfigurer.setBaseUrl('http://www.second.com');
   });
});

而不是全局配置(尽管你仍然可以为共享属性设置全局配置)创建像这样的Restangular工厂并将它们注入你的控制器......

// Let's use them from a controller
app.controller('MainCtrl', function(Restangular, FirstRestangular, SecondRestangular) {

  // GET to http://www.google.com/users.json
  // Uses global configuration
  Restangular.all('users').getList()

  // GET to http://www.first.com/users.json
  // Uses First configuration which is based on Global one, therefore .json is added.
  FirstRestangular.all('users').getList()

  // GET to http://www.second.com/users.json
  // Uses Second configuration which is based on Global one, therefore .json is added.
  SecondRestangular.all('users').getList()
});

答案 1 :(得分:0)

@ wickY26有正确的答案,但我想补充一些重要内容。

如果要缩小代码,则需要使用内联注释:

app.factory('FirstRestangular', [ 'Restangular', function(Restangular) {
   return Restangular.withConfig(function(RestangularConfigurer) {
      RestangularConfigurer.setBaseUrl('http://www.first.com');
   });
}]);

注意方括号。