하나의 상수 param (페이지), 하나의 동적 param (id), 하나의 query param (날짜)와 같이 내 상태를 정의했습니다.검색어 매개 변수 값이 angularjs 라우터에서 업데이트되지 않았습니까?
$stateProvider.state('test', {
url: '/page/:id?date',
controller: 'MyCtrl'
});
나는
console.log($stateParams.id) -> '5';
console.log($stateParams.date) -> '06/09/2016'(as expected results)
다시 내가 같은를 호출하고, 나는 점점 PARAMS 오전이 상태라는 한 후이
$state.go("test", {id: '5',date:'06/09/2016'});
같은 쿼리 PARAM을 전달 내 컨트롤러에서이 상태를 호출하고 내 컨트롤러에서이 같은 쿼리 매개 변수를 전달하지 않고 상태.
$state.go("test", {id: '7'});
는 지금은 아래 점점 상태를 호출하는 동안 나는 그것을 통과하지 않았기 때문에
console.log($stateParams.id) -> '7';(expected)
console.log($stateParams.date) -> '06/09/2016';(which shouldn't be right here.)
$ stateParams.date이 정의되어야한다 stateparams하고있다. 하지만 URL에서 기본적으로 지나가고, 한번 통과되었습니다. 선택적 매개 변수이므로 전달하지 않는 동안 무시해야합니다. 매개 변수를 전달하지 않고 동일한 상태를 다시 호출하는 동안이를 '정의되지 않음'으로 만드는 방법은 무엇입니까? $ stateParams.date = null 또는 someother 이름을 전달하면 반영됩니다. 하지만 내 라우터 URL을 통해 전달할 필요가 없습니까? 이것을 달성 할 다른 방법이 있습니까?
업데이트 1 : 게시 된 답변 후에 '{inherit : false}'를 예상 결과로 사용했습니다. 하지만 상태를 호출하는 동안 전달되지 않은 param 값을 상속하지 않았습니다. 하지만 선택적 param 값만 상속 받기를 원하지 않습니다. 아래 코드를 참조하십시오.
$stateProvider.state('test', {
url: '/page/:id/:type?date',
controller: 'MyCtrl'
});
여기 동적 ID와 유형을 입력해야합니다. id의 업데이트 된 값으로 호출했다고 가정하면 유형은 상속되지 않습니다. 하지만 날짜 (조건부 Param) 값이 아닌 형식 param 값을 상속하고 싶습니다.
$state.go("test", {id: '3'},{inherit:false});
을 console.log ($ stateParams.type)는 -.. 내가 '형'의 값을 업데이트하지 않으 becaz> 정의되지 않은 (여기서 나는 '유형'PARAM 값을 원하는 거치지 않고 상속해야합니다. 난 그냥 이전 값을 유지해야 할 어쨌든 이것을 달성하기 위해
여기에 동적 매개 변수 'id'를 상속하고 쿼리 매개 변수 'date'를 상속받지 못하게하려면 어떻게해야합니까? – VVijay
{상속 : false}는 param 값을 상속 받아야합니다. 하지만 선택적 param 값만 상속 받기를 원하지 않습니다. – VVijay
동적 매개 변수 값만 상속받을 수있는 방법이 있습니까? @ C14L – VVijay