새로운 상태 기반의 ui-router을 사용하는 AngularJS 응용 프로그램이 있습니다. 내 응용 프로그램에는 세 가지 다른 뷰가 있는데, 하나는 최상위 뷰이고 다른 두 개는 중첩 된 뷰입니다.각도 라우터에서 중첩 된 상태의 뒤로 버튼
는구조는 기본적으로 다음과 같다 : 라우터는 다음과 같은 설정
/ => Top-level view
/foo => Abstract view, loads a view that contains a ui-view placeholder
/foo/bar => View for the placeholder
/foo/baz => View for the placeholder
:
app.config(['$urlRouterProvider', '$stateProvider', function ($urlRouterProvider, $stateProvider) {
'use strict';
$urlRouterProvider
.when('/bar', '/foo/bar')
.otherwise('/');
$stateProvider
.state('home', {
url: '/',
views: {
'': {
controller: 'homeController',
templateUrl: '/home/homeLayout.html',
},
'[email protected]': {
templateUrl: '/home/firstHomeView.html'
},
'[email protected]': {
templateUrl: '/homme/secondHomeView.html'
}
}
})
.state('foo', {
abstract: true,
templateUrl: '/foo/fooLayout.html',
controller: 'fooController'
})
.state('foo.bar', {
url: '/foo/bar',
templateUrl: '/foo/barView.html',
controller: 'barController'
})
.state('foo.baz', {
url: '/foo/baz',
templateUrl: '/foo/bazView.html',
controller: 'bazController'
});
문제는 당신이 주위를 클릭하거나 수동으로 입력 할 때 기본적으로 모든 것이 기대 작품으로 있다는 것입니다 브라우저에서 뒤로/앞으로 버튼을 사용할 때 작동하지 않는다는 것을 의미합니다.
예를 들어 /foo
으로 가면 /foo/bar
으로 예상됩니다. /foo/baz
으로 연결되는 링크를 클릭하면 모든 것이 정상입니다. 그런 다음 /
으로 연결되는 링크를 클릭하면 모든 것이 정상입니다.
이제 뒤로 버튼을 누르면 다시 /foo/baz
(올바른)이지만 /foo/fooLayout.html
보기 만 렌더링되고 하위보기는 /foo/bazView.html
이 아닙니다. 이제 이상한 점은 뒤로 버튼을 다시 누르면 /foo/bar
으로 이동하고 서브 뷰을 포함하여 올바르게 렌더링된다는 것입니다. 같은 시간에 추상적 인 뷰를 입력하는 경우 적어도 뒤로 버튼을 사용할 때 중첩 된 뷰가 인식되지 않는 것처럼 보입니다.
$locationProvider.html5Mode
은 활성화되어 있지 않지만 활성화해도 아무런 차이가 없습니다.
저는 AngularJS 1.0.5와 ui-router 0.0.1-2013-03-20을 사용하고 있습니다.
어떤 아이디어로 인해이 문제가 발생할 수 있으며 어떻게 해결할 수 있습니까?
다음날 해결책을 찾았 기 때문에 기쁘다 .. :) – Vignesh