Javascript 在AngularJS应用程序中动态加载和卸载外部样式表
我的AngularJS应用程序中有两个路由/视图使用冲突的CSS。我有两个单独的外部样式表,我想用于这些路由。例如Javascript 在AngularJS应用程序中动态加载和卸载外部样式表,javascript,angularjs,stylesheet,dynamic-loading,Javascript,Angularjs,Stylesheet,Dynamic Loading,我的AngularJS应用程序中有两个路由/视图使用冲突的CSS。我有两个单独的外部样式表,我想用于这些路由。例如foo.css用于foo路线和bar.css用于bar路线。这样我就可以解决冲突 但是,当从foo导航到bar时,我必须加载bar.css并卸载foo.css 我该怎么做?是否有一个库/模块可以帮助我实现这个场景 我已经研究了ocLazyLoad,但我不确定如何卸载加载的CSS。AngularJS方法 在下面的评论中,OP建议了一种在AngularJS中最适合我的方式——使用ng d
foo.css
用于foo
路线和bar.css
用于bar
路线。这样我就可以解决冲突
但是,当从foo
导航到bar
时,我必须加载bar.css
并卸载foo.css
我该怎么做?是否有一个库/模块可以帮助我实现这个场景
我已经研究了ocLazyLoad
,但我不确定如何卸载加载的CSS。AngularJS方法
在下面的评论中,OP建议了一种在AngularJS中最适合我的方式——使用ng disabled
指令。您只需将
设置为ngapp
属性元素,以便正确执行指令
<link rel="stylesheet" href="/path/to/style-1.css" ng-disabled="theme.name === 'theme1'">
<link rel="stylesheet" href="/path/to/style-2.css" ng-disabled="theme.name === 'theme2'">
这样,两种样式都会立即加载(在以后更改时不会导致闪烁)。如果最初不应加载某些样式,则需要采用不同的方法
原始答案
看。然后只需找到合适的
标记,并随意启用/禁用它们。我认为这与AngularJS无关。谢谢你的回答!然而,正如您所建议的,我可以将ngDisabled
或ngIf
指令添加到
元素中,但这样我将无法延迟视图呈现,并且文档可能会在一段时间内看起来没有样式。我只是不想把事情搞砸。如果在同一个作用域上使用相同的变量触发禁用,两个
都将在相同的$digest
期间更新(两个文件都将在页面加载时加载)。所以我不担心闪烁,唯一可能的问题是,在第一个$digest
排序之前,两个样式表都将被应用。我不希望它们被乐观地加载。不是每个应用程序的用户都会使用第二条路线。在这种情况下,。是的,谢谢)我看到了这个问题,但它比我的更一般。我可能正在寻找现有的解决方案,可以使它的工作。