2016-07-14 4 views
0

Как перестроить маршрутизатор? Когда я загружаю один и тот же маршрутизатор, но с другим параметром, изменяется только URL-адрес, просмотр остается неизменным. Есть ли способ сказать маршрутизатор - «Эй, перестройте себя!»?Angular2 как перестроить представление (маршрутизация)

Мне нужен эффект, как window.location.reload(), но без перезарядки.

ответ

1

При перемещении по тому же маршруту с другим параметром повторно используйте компонент. Следовательно, ngOnInit больше не будет вызываться, поэтому вы можете подумать, что страница не обновляется. Вы должны подписаться на routeparam в ngOnInit, а затем сделать обновление вида в подписной функции

Inject Активированный маршрут в конструкторе

constructor(
    private route: ActivatedRoute, 
    private router: Router,......) {} 
In the ngOnInit method, we use the ActivatedRoute service to retrieve the parameters for our route 

ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
    let id = +params['id']; // (+) converts string 'id' to a number 
    //here goes your logic like below 
this.service.getHero(id).then(hero => this.hero = hero); 
    }); 
} 

Также обратите внимание на другую так question

+0

Эй, спасибо. Он работает, но странно. Я один маршрутизатор. Это как: Cliked A -> ничего, нажал B -> перенаправлен на A, нажал C -> перенаправлен на B. Знаете ли вы, что не так? – elzoy

+0

Покажите нам какой-то код, который вы можете увидеть, предупреждающий о выражении консоли изменился после проверки. Попробуйте обернуть сеттер в setTimeout. Покажите нам код, связанный с обработкой param –

+0

Извините, я забыл переделать свой код. Я использовал внутри подписки this.route.params.snapshot ['id'] вместо params ['id']. Спасибо, ты качаешься;) – elzoy

Смежные вопросы