我是Angular2的新手,习惯了Angular 1的digest循环。这意味着如果我更新视图的作用域,可以通过调用$scope.$digest()
手动触发digest。然而,在Angular2中,我不确定如何做到这一点,尤其是由于新框架没有旧版本具有的隐式数据绑定。
这是我的问题所在。当命中带有参数的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
。但是,如果我使用新的ID调用 reloadWithNewId
,例如reloadWithNewIf(2)
,则构造函数不会再次被调用。我如何手动重新加载组件?