Es ist nicht ganz klar, was Sie wollen oder warum Sie vermeiden eine Funktion zu wollen, sondern ein Weg, den ich gehen würde, um zu tun, was ich denke, Sie tun möchten:
<button ng-click="areaStatus = !areaStatus">Toggle</button>
<div ng-class="{'red' : areaStatus, 'green' : !areaStatus}">
This is some text
</div>
ist hier ein fiddle that shows it as well sowie ein Code-Snippet unten.
var myModule = angular.module('myModule', []);
myModule.controller('myController', function ($scope) {
$scope.areaStatus = false;
});
.red {
color:red;
}
.green {
color:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
<div ng-app="myModule">
<div ng-controller="myController">
<button ng-click="areaStatus = !areaStatus">Toggle</button>
<div ng-class="{'red' : areaStatus, 'green' : !areaStatus}">
This is some text
</div>
</div>
</div>
Innerhalb der ng-click
Sie einfach nur klappen Sie den boolean
Wert von areaStatus
. Mit ng-class
können Sie ein Objekt übergeben. Die Klassen red
und green
sind die Klassen, die Sie anwenden möchten. Sie werden angewendet, wenn der folgende Ausdruck korrekt ist.
Eine Alternative wäre Eckige zu gebrauchen {{ }}
in Ihrer Klasse:
<div class="{{areaStatus}}"> </div>
Also, wenn areaStatus
die Zeichenfolge "hidden"
enthält, dann ist das, welche Klasse in da sein. Aber Sie müssen immer noch einen Weg finden, um den Wert von areaStatus
zu ändern (entweder in einer Funktion, mehreren Schaltflächen oder Checkboxen).
können Sie in diesem Fall nicht ng-switch verwenden? – javaCity