我在Angular2应用程序中有一个元素,当我刷新页面或最初转到它时加载正常,但是当我将路径更改为父页面时隐藏了该元素。我正在使用一些购买的样式/ js,当我搜索元素名称时,我在.ready()调用中发现了一些显示元素并调整其高度的函数。我认为问题是这些初始化脚本第一次运行,但是当我更改路由时它们不会执行。我需要整个网站上的这些脚本,我不能真正拆分它们,因为它们已经缩小了。我尝试将所有脚本弹出到组件HTML的底部,但这不起作用(不是我预期的那样)。
如果这还不够信息,我可以将js和有问题的元素粘贴在一起,但在我看来,这样的东西会出现很多,因此有一个简单的通用修复。
答案 0 :(得分:2)
这件事发生在我身上的主题也不是Angular准备好的,我很确定此时应该有更清晰的解决方法,但那时它对我有用。将主题的js库加载到主要组件中:
ngAfterViewInit() {
if (document.getElementById("yourLibUniqueId")) {
document.getElementById("yourLibUniqueId").remove();
}
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "lib/yourLib.js";
s.id = "yourLibUniqueId";
this.elementRef.nativeElement.appendChild(s);
}
答案 1 :(得分:1)
您可以使用activate
的{{1}}方法作为:
router-outlet
然后在<router-outlet (activate)="onActivate($event)"></router-outlet>
做任何你想做的事。