我一直在寻找一种方法来使标准 a[href] 链接在动态加载到 [innerHTML] 时像 routerLinks 一样工作。它似乎不是标准的东西,我找不到任何我需要的东西。
我有一个可行的解决方案,但想知道是否有人知道任何更好的方法来做到这一点,或者我可能会遇到任何潜在的问题。
我在我的 app-routing.module.ts 中使用 jQuery,所以我声明了变量:
declare var $:any;
然后我找到所有具有 href 属性但不具有 routerlink 属性的锚点。然后我可以获取路径名并告诉路由器在点击时导航到它。
$(document).on('click', `a[href]:not("a[routerlink]"):not("a[href^='mailto:']"):not("a[href^='tel:']")`, function(e){
if(location.hostname === this.hostname || !this.hostname.length){
e.preventDefault();
router.navigate([this.pathname]);
}
});
这似乎可以完成这项工作,但我认为必须有一种更“角度”的方式来做到这一点......