2016-12-11 3 views
0

角をこらして新しいことを許してください。どのようにして、すべてのビューで表現される2つのCSS状態を切り替えることができる「ナイトモード」の静脈内で何かを達成するでしょうか?例えばイオンと角度:アプリケーション全体で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を別のビューのCSSに変更したい場合はどうしますか?同じコントローラを使用していても問題はないようです。

サービスを使用して2つのコントローラ間で変数を渡す方法について、ここでいくつか質問しましたが、関連性はありますか?

ありがとうございます!あなたは、メインコントローラを持っている場合は

+0

あなたはメインコントローラを持っていますか?メソッド '$ scope.activeButton'をアプリケーション全体にアクセスできるようにすることができ、変数' $ scope.isActive'はこの '$ rootScope.isActive'のようなrootScope変数になることがありますので、$ rootScope依存性アクティブな値にアクセスするすべてのコントローラーで – JoxieMedina

+0

それはトリックを行ったようです!あなたは私に多くのおかげで私を救った! – Naxes

+0

あなたは大歓迎です@Naxes、私はこの質問の回答として私のコメントを入れて、同じ質問、挨拶を持っている人のための有効な応答としてマークしてください! – JoxieMedina

答えて

0

アプリケーション全体にアクセスするために、そこに方法$scope.activeButtonを置くことができ、および変数$scope.isActivemaybeこの$rootScope.isActiveようrootScope変数ことができ、あなたがアクセスするすべてのコントローラに$rootScope依存関係を注入覚えていますアクティブな値

関連する問題