nie jest zbyt jasne, czego chcą lub dlaczego unika chcąc funkcję, ale sposób, że pójdę o tym, co myślę, że chcesz zrobić:
<button ng-click="areaStatus = !areaStatus">Toggle</button>
<div ng-class="{'red' : areaStatus, 'green' : !areaStatus}">
This is some text
</div>
Oto fiddle that shows it as well oraz fragment kodu poniżej.
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>
W ramach ng-click
ty po prostu odwrócić wartość boolean
z areaStatus
. Dzięki ng-class
możesz przekazać obiekt. red
i green
będą klasami, które chcesz zastosować. Zostaną zastosowane, gdy poniższe wyrażenie jest poprawne.
Alternatywą byłoby użyć kątowy na {{ }}
ciągu swojej klasie:
<div class="{{areaStatus}}"> </div>
Więc jeśli areaStatus
zawiera ciąg "hidden"
, to jest to, co klasa będzie tam. Ale nadal potrzebujesz sposobu, aby zmienić wartość areaStatus
(w funkcji, wielu przyciskach lub polach wyboru).
nie możesz użyć przełącznika Ng w takim przypadku? – javaCity