AngularUI의 라우터 라이브러리를 사용하고 있는데 이상한 문제가 있습니다. 두 개의 별개이지만 비슷한 상태와 컨트롤러가 있습니다. 어떤 상태가 발생하는지는 실행이 예상되는 상태이지만 다른 상태가 실행되는 것입니다. 즉, 템플릿 URL을 가져온 다음 컨트롤러가 두 번째 상태로 실행되어 일부 이상한 동작이 발생합니다. 문제두 개 이상의 상태를 실행하는 각도 ui.router
상태 : 내가 먼저 edit_answer.html
템플릿을로드하고 예상대로의 editAnswer
컨트롤러를 실행 /answer/1/edit/
에 가면
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"
})
});
가 정확히 무슨 일하는 것입니다. 그런 다음 edit_question.html
템플릿을로드하고 editQuestion
컨트롤러를 실행합니다. 나는 정확히 editAnswer
컨트롤러에서 실행되는 몇 가지 Restangular 코드가 있기 때문에 editQuestion
컨트롤러에서 실행되는 유사한 Restriction 코드가 발생하지만 404가 발생하고 라우터가 루트로 리디렉션됩니다. 또한 각 컨트롤러의 상단에 콘솔 로그를 두는 것은 컨트롤러가 editAnswer
이고 그 다음 컨트롤러가 editQuestion
인 것을 보여줍니다.
이 동작은 다른 상태가 아닌 answerEdit
상태에 대한 URL을로드 할 때만 나타납니다. 왜 이런 일이 일어나고 어떻게 해결할 수 있습니까?
우리는 이것을 볼 수 있도록'''editAnswer''' 컨트롤러를 게시해야합니다. 문제가 원인 일 수 있습니다. –