Как использовать `ng-class` для добавления и удаления класса?

#angularjs

#angularjs

Вопрос:

Я использую ng-class для добавления и удаления класса, нажав «Кнопку», не работает? Я использую Angular1.

В чем причина?

 <html lang="en" ng-app="xxx">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>

        div {
            width: 500px;
            height: 500px;
            background-color: black;
        }
         div.red {
            background-color: red;
            }

        button   {
            width: 200px;
            height: 50px;
            background-color: gold;
        }
    </style>

</head>
<body ng-controller="ooo">
<script src="angular.js"></script>

<div ng-class="{red:isRed}" >xxxx</div>

<button ng-click="changColorIsRed()">O</button>

</body>
<script>
  var app = angular.module('xxx',[]);
    app.controller('ooo',['$scope',function ($scope) {
        $scope.isRed = false;
        $scope.changeColor = function () {
            $scope.isRed = !$scope.isRed;
        }
    }]);
</script>
</html>
  

Есть ли другой способ реализовать это?

Ответ №1:

У вас ошибка в коде.

Вы определяете функцию changeColor , но используете changColorIsRed ее в своем ng-click атрибуте.

Если вы исправите это на ng-click="changeColor()" , ваш код будет работать.

Ответ №2:

Изменить

 <button ng-click="changColorIsRed()">O</button>
  

Для

 <button ng-click="changColor()">O</button>
  

Ответ №3:

В вашем коде более одной ошибки:

Кроме приведенных ниже изменений:

 <button ng-click="changColorIsRed()">O</button>
  

Для

 <button ng-click="changColor()">O</button>
  

Вы не можете использовать директивы Angular, а затем загружать angular.js файл.
Вы должны установить приведенный ниже код:

 <script src="angular.js"></script>
  

поверх ng-app .