2016-12-11 38 views
0

新角度,所以原諒我。你會如何在「夜間模式」的基礎上完成某些事情,在這種模式下,你可以在所有視圖中代表的兩個CSS狀態之間切換?Ionic&Angular:在整個應用程序中切換CSS?

就拿:

視圖1:

<ion-view> 
    <ion-nav-bar></ion-nav-bar> 
    <ion-content> 
    <ion-toggle toggle-class="toggle-positive" ng-click="activeButton();">Night Mode</ion-toggle> 
    </ion-content> 
</ion-view> 

查看2:

<ion-view> 
    <ion-nav-bar></ion-nav-bar> 
    <ion-content> 
    <div ng-class="'active' : isActive">Change Me!</div> 
    </ion-content> 
</ion-view> 

JS:

classApp.controller('classCtrl', function ($scope) { 
    $scope.isActive = false; 
    $scope.activeButton = function() { 
    $scope.isActive = !$scope.isActive; 
    } 
}); 

CSS:

.active { 
    background: red; 
} 

這不起作用。它只會在被更改的元素處於相同視圖中時發生,但如果我想更改另一個視圖中元素的CSS,該怎麼辦?即使他們使用相同的控制器,它似乎並不重要。

我讀過幾個有關使用服務在兩個控制器之間傳遞變量的問題,這與我的問題有任何相關性嗎?

在此先感謝!

+0

你有一個主控制器?因爲你可以把'$ scope.activeButton'方法放在整個應用程序中,變量'$ scope.isActive'可以是一個rootScope變量,就像'$ rootScope.isActive'一樣,記住注入$ rootScope依賴項在你想要訪問活動值的每個控制器中。 – JoxieMedina

+0

這似乎已經做到了!你救了我很多麻煩,謝謝! – Naxes

+0

不客氣@納克斯,我把我的評論作爲對這個問題的迴應,請把它標記爲對有同樣問題,問候的人有效的迴應! – JoxieMedina

回答

0

如果你有一個主控制器,你可以把方法$scope.activeButton存在於整個應用程序的訪問,以及可變$scope.isActivemaybe,可就是這樣$rootScope.isActive一個rootScope變量,記得注入在每個控制器的$rootScope依賴要訪問活躍的價值

相關問題