在angularJS $资源中调用多个服务之一

时间:2014-06-27 19:59:24

标签: asp.net angularjs angularjs-service angularjs-routing

这个代码有什么问题,我试图让一个服务方法指向不同的restful服务吗?

var phonecatServices = angular.module('phonecatServices', ['ngResource']);
phonecatServices.factory('Phone', ['$resource',
  function ($resource) {
      return {
          pList: $resource('/:url/:phoneId.json.htm', {}, {
              query: { method: 'GET', params: { url: 'MyAngularScripts', phoneId: 'jsonPhonedata' }, isArray: true }
          }),
          pDetail: $resource('/Content/PhonesData/:phoneId.json.htm', {}, {
              query: { method: 'GET', params: {   phoneId: $routeParams.phoneId }, isArray: false }
          })
      };
}]);

然后在我的控制器中,我像这样调用pList:

$scope.phones = Phone.pList.query();

使用上面的任何代码都不会调用服务方法。但是,如果我将服务更改为:

var phonecatServices = angular.module('phonecatServices', ['ngResource']);

phonecatServices.factory('Phone', ['$resource',
  function ($resource) {
      return $resource('/:url/:phoneId.json.htm', {}, {
          query: { method: 'GET', params: { url: 'MyAngularScripts', phoneId: 'jsonPhonedata' }, isArray: true }
      });
  }]);

并从控制器那里打电话:

$scope.phones = Phone.query();

IT工作。我有多个restful调用声明的服务有什么问题?它配置的方式或我调用它的方式有问题吗?

1 个答案:

答案 0 :(得分:0)

第一种方法也应该正常工作。

唯一的问题是你试图访问$routeParams的属性,而不先通过DI注入它,从而导致抛出错误。
如果你纠正这个,一切都应该按预期工作。