non è troppo chiaro che cosa hai intenzione o perché si sta evitando che vogliono una funzione, ma un modo che mi piacerebbe andare a fare quello che ti pare voler fare:
<button ng-click="areaStatus = !areaStatus">Toggle</button>
<div ng-class="{'red' : areaStatus, 'green' : !areaStatus}">
This is some text
</div>
Ecco un fiddle that shows it as well e uno snippet di codice di seguito.
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>
All'interno del ng-click
basta semplicemente capovolgere il valore boolean
di areaStatus
. Con ng-class
puoi passare in un oggetto. Il red
e green
sarebbero le classi che si desidera applicare. Verranno applicati quando l'espressione seguente è corretta.
Un'alternativa sarebbe quella di utilizzare angolare del {{ }}
all'interno della vostra classe:
<div class="{{areaStatus}}"> </div>
Quindi, se areaStatus
contiene la stringa "hidden"
, allora questo è ciò di classe sarà in là. Ma avresti comunque bisogno di un modo per modificare il valore di areaStatus
(in una funzione, più pulsanti o caselle di controllo).
non è possibile utilizzare ng-switch in questo caso? – javaCity