【问题标题】:How to assign to readonly route params in angular 4?如何在角度 4 中分配给只读路由参数?
【发布时间】:2017-12-24 04:15:17
【问题描述】:

我的 angular 4 项目中的一个路由参数中有一个斜线,所以我对该路由 url 进行了编码,但是当实际页面被加载时,我需要再次将该路由参数解码为正常,这是不允许的并且引发“无法分配给对象的只读属性 'param1'”

例如:

this.router.navigateByUrl(encodeURI('route1/' + param1.replace(/\#/g, ':').replace(/\//g, '\u2215'))

在这里,我正在尝试使用 route1 页面中的以下代码将 param1 解码为其正常状态:

this.route.params.subscribe(params => {
params.param1 = decodeURI(params).readme.replace(/\u2215/g, '/');
})

这将引发错误为“无法分配给对象的只读属性'param1'”。能否告诉我如何获取实际参数。

【问题讨论】:

    标签: angular


    【解决方案1】:

    不要尝试分配给params 对象(params.param1 必须是const,因此您不能再次分配给它)。创建新对象以跟踪更改的参数。

    this.route.params.subscribe(params => {
    var param1 = decodeURI(params).readme.replace(/\u2215/g, '/');
    //use param 1 here
    })
    

    【讨论】:

      猜你喜欢
      • 2018-06-16
      • 2017-12-02
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多