Как не вызывать директиву каждый раз, когда я перезагружаю страницу

0

У меня проблема с директивой, помогите мне решить эту проблему. Это моя директива, которая изменяет стиль 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 router.

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

Как я могу использовать эту директиву только один раз? Благодарю.

Теги:
angular-ui-router

1 ответ

0

Моя проблема была исправлена, поставив директиву в div с ui-view.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню