을 얻을 수 없 ui-라우터 상태 params
-
21-12-2019 - |
문제
다음을 고려한 ui-라우터 구성:
$stateProvider
.state('app', {
url: "/app",
abstract: true,
templateUrl: "templates/menu.html",
controller: 'AppCtrl'
})
.state('app.feed', {
url: "/feed",
views: {
'menuContent': {
templateUrl: "templates/feed.html",
controller: "FeedCtrl"
}
}
})
나는 다음과 같은 링크에서 내 응용 프로그램:
<a ui-sref="app.feed({ feedId: 5 })">My Link</a>
나를 얻으려고 노력 feedId
에 국가 params:
angular.module('MyApp').controller('FeedCtrl', function($state) {
console.log($state.params);
});
하지만,불행하게도, $state.params
상 {}
.
무엇이 잘못된 것입니까?
보너스 질문
제가 기대 FeedCtrl
을 초기화 모든 링크를 클릭하면,즉모든 시간에 상태가 변경되었을 app.feed
.그래서,변경하는 경우 사 app.feed
국가 및 다른 국가 여러 번을 기대합 console.log
상을 여러 번 실행됩니다.하지만,그것은 다음과 같 ui-라우터 처음 상태 FeedCtrl
습니다.왜?
해결책
전달하는 매개변수-우리는 우리가 그것을 정의:
.state('app.feed', {
url: "/feed/{feedId}",
views: {
'menuContent': {
templateUrl: "templates/feed.html",
controller: "FeedCtrl"
}
}
이 경우에는 우리가 그것을 정의로 {feedId}
더 보기
몇 가지 예:
'/user/{id:[^/]*}'
-동일'/user/{id}'
에서 이전의 예입니다.'/user/{id:[0-9a-fA-F]{1,8}}'
-이전과 유사한 예로,하지만 경기는 경우 id 매개변수로 구성되어 있의 1 8 육 자리입니다.'/files/{path:.*}'
-일치하는 URL 을 시작으로'/파일/는 경로의 나머지 부분으로 매개 변수는'경로'.'/files/*path'
-동감.특별기 위한 구문을 모두 잡아.
는 경우에 우리가 정의된 매개 변수입니다,우리는 탐색 중국과 다른 feedId
값...우리는 정말 보는 컨트롤러 FeedCtrl
은 reinstantiated.는 방법 ui-router
설계
제휴하지 않습니다 StackOverflow