Я новичок в Angular2, я привык к циклу цикла Angular 1, то есть, если я обновляю область видимости, я могу вручную вызвать дайджест, вызвав $scope.$digest()
. Тем не менее, я не уверен, как это сделать в Angular2, esp, учитывая, что новая структура не имеет неявных привязок данных, которые использовалась в старой версии.
Вот моя проблема. У меня есть маршрут, который загружает компонент при попадании URL-адреса с параметром:
// Router
export const AppRoutes : RouterConfig = [
{
path: 'my/:arg/view',
component: MyComponent
}
]
Тогда у меня есть этот компонент:
// Component
export class MyComponent {
constructor(private route : ActivatedRoute,
private r : Router) {
let id = parseInt(this.route.params['value'].id);
console.log(id);
// do stuff with id
}
reloadWithNewId(id:number) {
this.r.navigateByUrl('my/' + id + '/view');
}
}
Предположим, что я перехожу к url /my/1/view
. Он вызывается конструктором и записывается номер 1
. Однако, если я вызываю reloadWithNewId
с новым id, reloadWithNewIf(2)
, конструктор не вызывается снова. Как вручную перезагрузить компонент?