我正在使用在Angular应用程序中使用自定义js,jquery,bootstrap的html设计的原型。通过angular CLI加载了所有必需的CSS和javascript。 json。如果分别在angular 7项目中加载,则每个页面都可以很好地打开。 第二阶段:之后,我将配置以下内容以在应用程序中以布局格式使用原型。
设计了MainLayout [具有headerTop,headerNav和footer,以及用于加载其他来自特色模块的页面的路由器插座。]此MainLayout已加载到根级路由器出口中。
HmComponent具有主页内容,该内容正在加载到MainLayout的路由器出口中。并且正在与MainLayout一起加载。 MainLayoutComponent和HmComponent都已配置为在默认根目录上加载,它们都是Main模块的一部分。他们也很好。在此阶段,主页内容和MainLayout内容所需的JS可用并且运行良好。
现在,我导航至其他页面。 AboutUsLink是功能模块的一部分,并且延迟加载。
HomeLink AboutUsLink ContactUsLink OtherLink
该页面的CSS加载情况良好,但是此页面上所需的js不可用,而我已经全局加载了js。
最后,我再次通过HomeLink从此功能模块页面AboutUsLink返回主页,该主页再次加载了这里需要的所有CSS;但是没有加载js,而js是在第一次加载应用程序时加载的。
我添加了一个主路由器和一个公共路由器代码,用于查找我做错的任何事情。该路由器可用于顶层路由以及特色模块路由。我对通过Augury(Chrome的一项附加功能)生成的路由器树进行了交叉检查。
备注:在导航的任何阶段,如果js不可用,则刷新页面使其恢复原状,并且与js相关的东西将开始正常工作。似乎正在发生覆盖。
预先感谢您对我的问题发表评论或提供具体解决方案。
从理论上讲,应将此父级中加载的JS对其子级组件可用,因为这种理念适用于js的全局加载。
Both the routers I am using for configuration have been pasted here.
# app.router.ts #
const routes: Routes = [
{ path: '', component: MainLayoutComponent,// will be loaded as default.
children: [
{ path: '', component: HmComponent }, //load home page
{ path: 'hm', redirectTo: '' },
//Now load its child router module
{ path:"pub",loadChildren:'./public/public.module#PublicModule",data: { preload: true } },
]
},
{ path: 'hm', redirectTo: '' },//redirect to root
];
# public.module.router.ts #
const路由:路由= [
{ path: 'aboutus', component: AboutUsComponent },
{ path: 'contactus', component: ContactUsComponent },
{ path: 'listings', component: ProviderSearchComponent },
{ path: 'categories', component: ProviderCategorySearchComponent },
{ path: 'providers', component: ProviderDetailsComponent },
{ path: 'blogdetail', component: BlogdetailComponent },
{ path: 'bloglistings', component: BloglistComponent },
{ path: 'bloggrid', component: BloggridComponent },
{ path: 'loginreg', component: LoginRegFgtPwdComponent },
];