我有一个angular2应用程序而且我在使用后退按钮时遇到了问题。
我有一个带有queryString参数的路由器链接。参数(名为filter)的值为JSON。
我的路由器链接定义如下:
<a [routerLink]="['/app/listing', {filter: getFilter(model.id)}]">{{model.count}}</a>
getFilter方法执行此操作:
getFilter(id) {
return JSON.stringify({ Country: [id] });
}
返回如下表达式:
“{” 国家 “:[9]}”
我想要一个这样的查询字符串。
http://localhost:54675/app/listing?filter= { “国家”:[6]}
这就是Angular程序集:
http://localhost:54675/app/listing;filter=%7B%22Country%22:[6]%7D
网址编码更改了引号和括号。我不完全明白为什么?被替换为;。
这很好用,列表页面处理过滤器。但是,如果我向下钻取然后返回,则在过滤器上调用JSON.Parse时会出现此错误:
位置0的JSON中出现意外的标记%
当我第一次使用路由器链接进入页面时,过滤器值为:
“{” 国家 “:[6]}”
但是当我使用时,过滤器的值是:
“%7B%22Country%22:[6]%7D”