每次重新加载页面时如何不调用该指令

时间:2015-08-19 13:06:39

标签: javascript css angularjs angular-ui-router

我的指令有问题,帮我解决这个问题。 这是我的指令,它改变了css样式,但每当我转到另一个页面时所有这些重新加载,我都不想要这个。

directive('layoutSettings', function ($http) {
        return {
            restrict: 'A',
            link: function (scope, element, $rootScope) {
                    $rootScope.selectedLayout = {};
                    $http.get('http://localhost/obp_shop/api/LayoutSettings/GetValue').success(function(data) {
                        $rootScope.selectedLayout = data;
                        console.log($rootScope.selectedLayout);
                        $(element).css({ 'background-color': $rootScope.selectedLayout[0].value });
                        $(element).css({ 'background-image': 'url(data:image/jpeg;base64,' + $rootScope.selectedLayout[1].value + ')' });
                        $('.btn-primary').css({ 'background-color': $rootScope.selectedLayout[2].value });
                        $('.btn-default').css({ 'background-color': $rootScope.selectedLayout[2].value });
                        $('btn-primary').css({ 'color': $rootScope.selectedLayout[3].value });
                        $('.btn').css({ 'font-size': $rootScope.selectedLayout[4].value });
                        $('h1,h2,h3,h4,h5,h6').css({ 'color': $rootScope.selectedLayout[5].value });
                        $('h1,h2,h3,h4,h5,h6').css({ 'font-size': $rootScope.selectedLayout[6].value });
                        $(element).css({ 'color': $rootScope.selectedLayout[7].value });
                        $(element).css({ 'font-size': $rootScope.selectedLayout[8].value });
                    });
                }
        };
    });

这个指令在索引页面的主体上,我得到其他页面,因为我使用的是ui路由器。

<body class="container" ng-app="routerApp" style="padding-top: 50px;" layout-settings>
<div ui-view cg-busy="{promise:promise}"></div>
</body>

我如何才能使用此指令一次? 感谢。

1 个答案:

答案 0 :(得分:0)

通过将指令放在带有ui-view的div中来解决我的问题。