【发布时间】:2014-08-19 00:58:13
【问题描述】:
我试图让一种服务方法指向不同的 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();
它可以工作。我声明了多个 restful 调用的服务有什么问题?它的配置方式或我调用它的方式有什么问题吗?
【问题讨论】:
-
这可能是由于在第一种情况下抛出的错误,因为
$routeParams未定义(因为您不是通过 DI 注入它)。 -
谢谢。这就是问题所在。
标签: asp.net angularjs angularjs-service angularjs-routing