Я использую библиотеку маршрутизатора AngularUI, и у меня есть странная проблема: у меня есть два разных, но похожих состояния и контроллеры. То, что происходит, - это состояние, которое я ожидал бы запускает, но затем запускается другое состояние: оно выбирает шаблон urrl, а затем контроллер запускается для второго состояния, что вызывает какое-то странное поведение.Угловой ui.router, выполняющий более одного состояния
Состояние вопроса:
angular.module('app', ['ui.route'])
.config(function ($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state('list', {
url: "/",
templateUrl: STATIC_URL + "js/eleagemot/views/list.html",
controller: 'questionListCtrl',
})
.state('detail', {
url: '/{username:[a-zA-Z0-9\\-]+}/{slug:[a-z0-9\\-]+}/',
templateUrl: STATIC_URL + "js/eleagemot/views/detailed_question.html",
controller: 'questionDetailCtrl'
})
.state('newQuestion', {
url: '/new-question/',
templateUrl: STATIC_URL + "js/eleagemot/views/edit_question.html",
controller: 'editQuestion'
})
.state('questionEdit', {
url: '/{username:[a-zA-Z0-9\\-]+}/{slug:[a-z0-9\\-]+}/edit/',
templateUrl: STATIC_URL + "js/eleagemot/views/edit_question.html",
controller: 'editQuestion'
})
.state('answerEdit', {
url: '/answer/{id:[0-9]+}/edit/',
templateUrl: STATIC_URL + "js/eleagemot/views/edit_answer.html",
controller: "editAnswer"
})
});
Именно то, что происходит, если я пойду в /answer/1/edit/
это первое загружает edit_answer.html
шаблон и запускает контроллер editAnswer
, как и положено. Но затем он также загружает шаблон edit_question.html
и запускает контроллер editQuestion
. Я знаю, потому что в контроллере editAnswer
есть правильный код, который корректно работает, а затем некоторый аналогичный код, который выполняется в контроллере editQuestion
, но это вызывает 404, а затем маршрутизатор перенаправляет его в корневой каталог. Кроме того, размещение некоторых консольных журналов в верхней части каждого контроллера показывает, что работает контроллер editAnswer
, а затем контроллер editQuestion
.
Это поведение наблюдается только при загрузке URL-адреса для состояния answerEdit
, а не для какого-либо другого состояния. Почему это происходит и как я могу это исправить?
Возможно, вы должны разместить свой '' '' редактор editAnswer''', чтобы мы могли это посмотреть. Возможно, это может вызвать проблему. –