首页 > 解决方案 > 如何在 Angular 的每次导航中运行 JS 方法

问题描述

在 Angular 项目中,当我将页面导航到另一个页面时,页面中会出现问题。

我添加的第三个 javascript 库在导航时被破坏。

所以我必须运行这段代码。

declare var MY_LIBRARY: any;// referencing jQuery library

MY_LIBRARY.initAllPlugins();

我必须在每次导航时运行此代码。

页面导航时如何运行此方法?

是否有中间件系统或类似的东西?

标签: javascriptangular

解决方案


你可以像这样监听 Route 的变化:

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.
            }
        });
    }
}

但请记住,在每次导航/路线更改时运行代码(尤其是初始化一些插件)可能会很昂贵,并且会影响应用程序的性能。


推荐阅读