我一直在寻找一种方法,使标准的a[href]链接在动态加载到[innerHTML]时能像routerLinks一样工作。似乎这不是一个标准的做法,我找不到任何可以满足我的需求的东西。
我有一个可行的解决方案,但想知道是否有更好的方法来解决这个问题,或者我用这种方式可能会遇到什么潜在问题。
我在app-routing.module.ts中使用jQuery,因此我声明了变量:
我有一个可行的解决方案,但想知道是否有更好的方法来解决这个问题,或者我用这种方式可能会遇到什么潜在问题。
我在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]);
}
});
这种方法似乎可以完成工作,但我认为应该有一种更“Angular”的方法来实现这个功能...