angular - Angular:将 routerLink queryParams 设置为组件属性会导致错误
问题描述
当我在 Angular2 中绑定queryParams
使用时,出现此错误:routerLink
[错误] 尝试序列化值时出现异常
当我检查 DOM 时会显示此错误。链接根本不显示在页面上,所以这是我唯一的调试方式,因为控制台中也没有错误。
组件代码
export class FormatUrlLinkComponent implements OnInit {
@Input('url') apiUrl: string;
@Input('text') linkText: string;
validUrl: {
url: string,
query: object
} = {
url: '',
query: {}
};
constructor() { }
ngOnInit() {
// Format url into a valid url for routerLink
this.validUrl = queryString.parseUrl(this.apiUrl);
console.log(this.validUrl.query);
}
}
模板代码
<a [routerLink]="validUrl.url" [queryParams]="validUrl.query"></a>
当我这样做console.log(this.validUrl.query)
时,我看到以下内容:
{Ntt: "welded"}
我在这里做错了吗?
解决方案
出于某种奇怪的原因,我通过这样做解决了它:
// Format url into a valid url for routerLink
const validUrl = queryString.parseUrl(this.apiUrl);
this.validUrl.url = validUrl.url;
this.validUrl.query = validUrl.query;
不知道为什么我必须将值分配给一个变量,然后将该变量中的两个值分配给模板中使用的那个,但这修复了它。
推荐阅读
- python - mpi4py 在分段错误期间查明错误的等级
- c# - 无法弹出弹出页面
- java - 使用 selenium webdriver 在页面对象模型中运行我的项目时收到 java.lang.NullPointerException
- xamarin - Xamarin iOS:错误 MT2101 无法解析引用'Foundation.NSString Foundation.NSBundle::GetLocalizedString
- rest - 按频道 ID 打开 Twitch 频道
- vue.js - electron-vue 和 puppeteer 如何配置 babel 保持异步等待以正常工作以等待 page.evaluate(async () => {})
- windows - 复制所有文件命令在命令提示符下不起作用
- java - 当我尝试运行我的代码时出现 JDBC SQL 空异常错误
- vb.net - 如何知道 Listview 中的最大索引数量?
- javascript - 循环遍历 PDFmake 表的两个单独数组