Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AngularJS应用程序中动态加载和卸载外部样式表_Javascript_Angularjs_Stylesheet_Dynamic Loading - Fatal编程技术网

Javascript 在AngularJS应用程序中动态加载和卸载外部样式表

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

我的AngularJS应用程序中有两个路由/视图使用冲突的CSS。我有两个单独的外部样式表,我想用于这些路由。例如
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
排序之前,两个样式表都将被应用。我不希望它们被乐观地加载。不是每个应用程序的用户都会使用第二条路线。在这种情况下,。是的,谢谢)我看到了这个问题,但它比我的更一般。我可能正在寻找现有的解决方案,可以使它的工作。