У меня проблема с директивой, помогите мне решить эту проблему. Это моя директива, которая изменяет стиль 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>
Как я могу использовать эту директиву только один раз? Благодарю.
Моя проблема была исправлена, поставив директиву в div с ui-view.