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 に答える