在Angular项目中,当我将页面导航到另一个页面时,页面中将出现问题。
我添加的第3个JavaScript库在导航时已损坏。
所以我必须运行这段代码。
declare var MY_LIBRARY: any;// referencing jQuery library
MY_LIBRARY.initAllPlugins();
我必须在每次导航中运行此代码。
页面导航时如何运行此方法?
是否存在中间件系统或类似的东西?
答案 0 :(得分:0)
您可以像这样监听路线更改:
export class SomeComponent {
constructor(private router: Router) {
router.events.subscribe((event: Event) => {
if (event instanceof NavigationStart) {
// do sth.
}
if (event instanceof NavigationEnd) {
// do sth.
}
if (event instanceof NavigationError) {
// do sth.
}
});
}
}
但是请记住,每次导航/路线更改时运行代码(尤其是初始化某些插件)可能会很昂贵,并且会影响应用程序的性能。
答案 1 :(得分:0)
通常,您会将组件初始化时需要运行的所有组件代码放入OnInit方法中:
ngOnInit(){ //此处的初始化代码 }
在您的情况下,我将查看您正在运行的javascript库,看看是否可以使用Angular版本来代替,或者是一种更好的方式来引用这些库-也许在单例服务中始终存在加载了哪个组件。
您在这里提出的建议手腕很笨拙,这表明有一种更干净的方法可以解决根本问题。