У меня есть простая конфигурация угловой маршрутизации с домашней страницей и некоторыми пользовательскими профилями. По какой-то причине, когда я перехожу к /users/user_3
, контроллер запрашивает индексный маршрут пользователя, users.json
, а не users/user_3.json
. Это приводит к тому, что служба User
жалуется: «Ошибка в конфигурации ресурсов для действия get
. Ожидаемый ответ, чтобы содержать объект, но получил массив».id не занят ngRoute
Эта ошибка указывает мне, что $resource
знает, что это запрос одного ресурса пользователя, но маршрут PARAMS, по всей видимости, были захвачены должным образом основаны на моем пустячный в консоли:
> $route = angular.element(document.body).injector().get('$route')
Object {routes: Object, reload: function, updateParams: function, current: Object}
> $route.current.params
Object {id: "user_3"}
Так что, похоже, как где-то между когда параметры маршрута захватываются и выполняется фактический запрос на обслуживание, что-то вызывает исчезновение параметра маршрута.
Вот мой маршрут конфигурации:
$routeProvider.when('/', {
controller: 'HomeCtrl',
templateUrl: '/assets/views/home.html',
})
.when('/users/:id', {
controller: 'UserCtrl',
templateUrl: '/assets/views/user.html',
});
Моя служба Пользователь:
angular.module('amn.services').service('User', [
'$resource', function($resource) {
return $resource('/users/:id.json', {
id: '@id'
});
}
]);
... и мой UserCtrl:
angular.module('amn.controllers').controller('UserCtrl', function($scope, User) {
return User.get(function(data) {
return $scope.user = data;
});
});
Может кто-нибудь сказать мне, что происходит? Благодаря!
ДА! Это сработало, спасибо. – acobster