1

我有 2 个 css 文件,我想有条件地使用其中的任何一个。如何动态加载 css 文件。我尝试了以下解决方案。

在控制器中我有一个变量

$scope.style1 = "resources/css/style_responsive.css";

在 index.html 中

<link id="base-style-responsive" ng-href={{style1}} rel="stylesheet">

但我似乎没有正确加载文件。有什么办法可以动态加载文件。我将非常感谢。请帮助我。

4

2 回答 2

0

这真的很难看,但是因为这种事情很难做小提琴等等......这可能是在没有出现在您面前的情况下实施解决方案的最佳方式。

这里是:

http://jsfiddle.net/Wa4Ea/

myApp.service('styleSheet', 
    function($compile, $rootScope) {
        var variableName = 'customStyleSheet';

        var element = angular.element("<link data-ng-href='{{" + variableName + "}}' rel='stylesheet' />");
        $compile(element)($rootScope);

        document.getElementsByTagName("head")[0].appendChild(element[0]);

        return {
            set: function (href) {
                $rootScope[variableName] = href;
            }
        };
    }
);

我不确定你在做什么,确切地说,但你明白了。修改它以满足您的需求。

(无论如何,从:

Angular JS:动态加载 CSS 和 JS 文件

可以尝试更努力地搜索:P)

于 2013-08-30T08:23:10.010 回答
0

尝试将此更改$scope.style1$rootScope.style1.

于 2013-08-30T07:34:09.947 回答