如何更改角度2中的currentUrl id?

时间:2017-07-30 18:30:32

标签: javascript angular typescript

我想更改组件中currentUrl对象的id属性。我想要实现的是,一旦id被更改,它应该从id中获取适当的数据。我目前收到以下错误。

" 无法分配给只读属性' id'对象' [对象]' "

有人可以帮我解决这个问题吗?

addBranch(id){
      this.currentUrl = this.activatedRoute.snapshot.params;
      console.log(this.currentUrl.id); // Currently the id is undefined
      this.currentUrl.id = id; //Cannot assign to read only property 'id' of object '[object Object]'
      window.location.reload();
}

1 个答案:

答案 0 :(得分:1)

您可以通过角度路由器执行此操作。首先,将其注入您的组件:

constructor( private router: Router )
{}

(如果您已经有一个现有的构造函数,请相应地扩展它。)

现在您可以使用this.router.navigate(['/your-desired-route', id]);代替

this.currentUrl.id = id;
window.location.reload();

这不会导致整页重新加载,只是设置正确的URL并触发处理路由更改所需的任何内容(例如确定处理请求的正确组件),从而避免不必要的角重新初始化。 / p>