#asp.net #angularjs #angularjs-service #angularjs-routing
#asp.net #angularjs #angularjs-service #angularjs-маршрутизация
Вопрос:
Есть ли что-то неправильное в этом коде, где я пытаюсь, чтобы один метод обслуживания указывал на разные службы 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 }
})
};
}]);
Затем в моем контроллере я вызываю список следующим образом:
$scope.phones = Phone.pList.query();
Метод service не вызывается ни с одним из приведенных выше кодов. Однако, если я изменю службу на эту:
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? Что-то не так с тем, как он настроен или как я его вызываю?
Комментарии:
1. Вероятно, это связано с тем, что в первом случае выдается ошибка, поскольку
$routeParams
она не определена (поскольку вы не вводите ее через DI).2. Спасибо. в этом и заключалась проблема.
Ответ №1:
1-й подход также должен работать нормально.
Единственная проблема заключается в том, что вы пытаетесь получить доступ к свойству $routeParams
, не вводя его сначала через DI, что приводит к возникновению ошибки.
Если вы исправите это, все должно работать так, как ожидалось.