Angular5 应用程序根据组件有条件地加载脚本和样式

Posted

技术标签:

【中文标题】Angular5 应用程序根据组件有条件地加载脚本和样式【英文标题】:Angular5 app conditionally load script and styling according to component 【发布时间】:2018-08-13 03:14:14 【问题描述】:

我的 Angular 应用程序由基于公共和私人页面的两部分组成: 1-登陆页面(登录前) 2- 仪表板和其他页面(授权用户)

登录页面组件包含注册/登录功能和一些其他静态 html 元素。

两者都是独立的组件并且具有不同的样式。我已经在它自己的样式文件中提到了着陆页的样式。

登录后用户可以访问多个页面,包括仪表板,用户页面等,它们共享共同的样式,他们也有共同的组件,如标题,侧边栏等,因为它们都共享相同的样式,我将不得不在应用程序组件中提及它以便它自动继承所有样式。

如何将其他页面样式与登录页面分开?

处理这种情况的方法是什么?

PS:我也在考虑在同一个项目下创建单独的应用程序,这种方法是否相关handling multiple applications with angular cli ?

【问题讨论】:

【参考方案1】:

是的,拥有多个应用程序对您的情况有意义。但是,我建议让登录页面不受任何框架的影响。我们正在工作中开发类似的东西。我们有纯 html 和 css 的登录页面。当用户成功登录后,他/她可以访问 Angular 应用程序。 Angular 很棒,我们都喜欢它,但它带有一堆你不知道的依赖项。在我看来,保持与安全相关的页面不受任何框架的影响会更好。这意味着您必须复制页眉、页脚等的样式,但这是值得的。

看看最近发布的这个article。如果您不知道要发送给用户的内容,则会带来很大的安全风险。

P.S:角度的依赖关系可能没问题,但是在安全性方面你不能假设事情是安全的。

【讨论】:

是的,我也在考虑将其与实际应用程序分开。感谢您的回答。

以上是关于Angular5 应用程序根据组件有条件地加载脚本和样式的主要内容,如果未能解决你的问题,请参考以下文章

角度 5 延迟加载与动态加载

根据功能组件中的数据有条件地渲染元素

根据 props 有条件地在组件上应用实用程序类的最佳方法

如何根据另一个组件的存在有条件地将类添加到 Magnolia 组件模板?

如何在 ReactJS 中有条件地加载组件

捆绑为 UMD 的 React 组件在通过另一个 React 应用程序中的脚本标签导入时无法加载依赖项