을 위해 다시 초기화하지 않습니다Angular2 구성 요소 나 매개 변수 T1과 테스트 경로 아래에있는 매개 변수 경로
{
path: 'Test/:T1',
component: TestComponent
},
때 내가 경로 '테스트/2' '시험/1'에서 내 TestComponent
이 다시 초기화되지 않습니다. 각형 라우터에 문제가 있습니까? 내가 "@angular/router": "3.0.0-beta.1"
을 위해 다시 초기화하지 않습니다Angular2 구성 요소 나 매개 변수 T1과 테스트 경로 아래에있는 매개 변수 경로
{
path: 'Test/:T1',
component: TestComponent
},
때 내가 경로 '테스트/2' '시험/1'에서 내 TestComponent
이 다시 초기화되지 않습니다. 각형 라우터에 문제가 있습니까? 내가 "@angular/router": "3.0.0-beta.1"
을 사용하고
이 현재 유일하게 지원되는 동작입니다. 만들 계획이이 구성 https://github.com/angular/angular/issues/9811
매개 변수를 변경하고
export class MyComponent {
constructor(private route : ActivatedRoute,
private r : Router) {}
reloadWithNewId(id:number) {
this.r.navigateByUrl('my/' + id + '/view');
}
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
this.paramsChanged(params['id']);
});
}
paramsChanged(id) {
console.log(id);
// do stuff with id
}
}
이에 대한 답변에 대한 웹 검색의 약 2 시간 후도 How do I re-render a component manually?
보기가 초기화를 수행하는 방법은 구독 할 수 있습니다 라우터 문제, 내 솔루션은 라우터를 포기하고 그냥 내 구성 요소가 그 일을했다. 당신이 바로 PARAMS와 URL을 방문하여로드되는 것을 방지 할 수없는 경비가없는 경우
window.location.href = '/my/' + new_id_param + '/view';
이
또한 당신을 위해 일할 수 있습니다."모범 사례"가 아니지만 나에게 적합합니다.
글쎄 실제로 스레드가 제안하는 동작이 내가 의도하는 동작의 반대입니다 .. 그러나 그들은 그것을 구성 할 수 있다면 모든 시나리오에서 작동 할 수 있습니다. – Mustafa
어떻게 보느냐에 따라 달라집니다 ;-) 현재 기본 동작은 이전의'routerCanReuse() {return true; }',하지만 당신이 원하는 것은'routerCanReuse() {return false; }'. –
정확히 .. 경로가 호출 될 때마다 실행되는 생성자가 필요하기 때문에. – Mustafa