离子和Angular:在整个应用程序中切换CSS?

时间:2016-12-11 20:27:03

标签: javascript html css angularjs ionic-framework

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,该怎么办呢?即使他们使用相同的控制器,它似乎并不重要。

我在这里读了几个关于使用服务在两个控制器之间传递变量的问题,这与我的问题有什么关系吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果您有一个主控制器,您可以将方法$scope.activeButton放在那里以访问整个应用程序,变量$scope.isActivemaybe可以是一个rootScope变量,如$rootScope.isActive,记住注入您要访问活动值的每个控制器中的$rootScope依赖关系