#angularjs #params #route-provider
#angularjs ( ангулярджс ) #параметры #поставщик маршрута #angularjs
Вопрос:
Быстрый вопрос, возможно ли получить параметр из $ routeProvider на следующем этапе?
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/home.html',
controller: 'IndexController'
})
.when('/students/:id', {
templateUrl: 'views/studentRecord.html',
controller: 'StudentsController',
resolve: {
students: function(getStudents) {
return getStudents.getAllStudents();
},
movies: function(getStudents,$stateParams) {
return getStudents.getStudentbyId($stateParams.id);
}
}
});
$locationProvider.html5Mode(true);
}]);
Итак, где у меня есть ‘getStudentbyId(5)’, в идеале я хотел бы получить поле значения:id. После долгого поиска в Google я не могу найти способ. Есть идеи?
Приветствия
РЕДАКТИРОВАТЬ: при вводе $ stateParams в мой app.config я получаю ‘(анонимная функция) angular.js: 78’ такой же, как при использовании $ params .. например.
app.config(['$routeProvider', '$locationProvider', '$stateParams', function($routeProvider, $locationProvider, $stateParams) {
Комментарии:
1. Вы пробовали просто вводить и использовать $ stateParams в тот момент?
2. я ввел $ stateParams , парень, который это редактировал, сделал.. который я только что увидел .. и собираюсь попробовать сейчас
3. @ipaul при вводе $ stateParams в мой app.config я получаю ‘(анонимная функция) angular.js: 78’ такой же, как при использовании $ params
4. Я собирался сказать ‘Я не вижу, чтобы вводились параметры состояния’, но это имеет смысл. На этом этапе вы настраиваете маршрутизацию. Я думаю, что лучше всего выполнить поиск данных movies в вашем контроллере, куда можно ввести параметры состояния. Я знаю, что на самом деле это не ответ, но внедрение зависимости не похоже на то, что оно применимо для «разрешения».
5. Люди! Есть
ngRoute
и естьuiRouter
. То, что вы используете модуль в своем приложении, не означает, что все это делают (или должны делать).
Ответ №1:
Все это есть в документах:
Имейте в виду, что
ngRoute.$routeParams
в этих функциях разрешения все равно будет ссылаться на предыдущий маршрут. Использовать$route.current.params
.
Например.:
resolve: {
studentID: function ($route) {
return $route.current.params.id;
}
...
}
Смотрите также эту короткую демонстрацию.
Комментарии:
1. я добавил $route.current.params, однако я получил неперехваченную ошибку практически без описания — возможно, мне следовало это добавить. не могли бы вы привести пример того, как это работает?
2. Я только что попробовал, но сейчас не могу увидеть свою веб-страницу. Также нет ошибок в консоли
3. Да, это должно сработать. Должно быть, проблема вызвана чем-то другим.