AngularJs 切换 ng-class ng-click

10

有人能提供正确的方法来处理这个JSFiddle吗:

<style>
 .red #btn{
     background-color:red;
  }

 .blue #btn{
    background-color:blue;
  }
 </style>

 <body ng-app="ap" ng-controller="con">
    <button id="btn" ng-click="changeClass()">Change Class</button>    
 </body>

 <script>
  var app = angular.module("ap",[]);

  app.controller("con",function($scope){

  $scope.class = "red";

  $scope.changeClass = function(){
     if ($scope.class === "red #btn")
         $scope.class = "blue #btn";
      else
         $scope.class = "red #btn";
   };
 });

 </script>

JsFiddle 链接

我正试图通过 .class 和 #ID 来改变元素的类。

提前致谢。

感谢 tymeJV,这是新的 JSFiddle:

解决方案

1个回答

28

正确的方法是根据一个开关变量使用 ng-class,例如:

CSS:

.red {
    color: red;
}

JS:

$scope.toggle = false;

HTML:

HTML:

<button id="btn" ng-click="toggle = !toggle" ng-class="{'red' : toggle}">Change Class</button>

ng-class 根据条件变量(在上面的例子中为 "toggle")是 true 还是 false,来分配引用样式类(这里是 "red")。


1
tymeJV: 问题。如果我有一个 <div id="SomeDiv"></div>,我想通过按钮点击来改变它的颜色,该怎么办? - Mike Jones
1
ng-class 放在那个元素上。 - tymeJV
2
tymeJV:我知道我在冒险,呵呵,但如何在红色和蓝色之间切换? - Mike Jones
2
啊,我不确定语法,但你可以使用 ng-class 来实现 - 尝试搜索 ng-class if else - tymeJV
1
EPIC - 揭示了令人敬畏的Angular DOM操作的秘密 - Charlie Tupman
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接