Kullanarak bir öğenin sınıf geçiş yapmaya çalışıyorum ng-class
<button class="btn">
<i ng-class="{(isAutoScroll()) ? 'icon-autoscroll' : 'icon-autoscroll-disabled'}"></i>
</button>
isAutoScroll ():
$scope.isAutoScroll = function()
{
$scope.autoScroll = ($scope.autoScroll) ? false : true;
return $scope.autoScroll;
}
Temel olarak, eğer $scope.autoScrolldoğruysa, ng sınıfı olmasını istiyorum icon-autoscrollve eğer yanlışsa, olmasını istiyorumicon-autoscroll-disabled
Şu an sahip olduğum şey çalışmıyor ve bu hatayı konsolda üretiyor
Error: Lexer Error: Unexpected next character at columns 18-18 [?] in expression [{(isAutoScroll()) ? 'icon-autoscroll' : 'icon-autoscroll-disabled'}].
Bunu nasıl doğru bir şekilde yapabilirim?
DÜZENLE
çözüm 1: (modası geçmiş)
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="{'icon-autoscroll': autoScroll, 'icon-autoscroll-disabled': !autoScroll}"></i>
</button>
DÜZENLEME 2
çözüm 2:
Solution 3Stewie tarafından sağlanan çözümün kullanılması gerektiği gibi çözümü güncellemek istedim . Üçlü operatör söz konusu olduğunda (ve benim için en kolayı) en standart olanıdır. Çözüm
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="autoScroll ? 'icon-autoscroll' : 'icon-autoscroll-disabled'"></i>
</button>
Çevirir:
if (autoScroll == true) ?// sınıfı kullan 'icon-autoscroll' :// başka kullan'icon-autoscroll-disabled'
autoScrollburada neden her bir düğme için geçerli olacak? (Bunu çoklu düğmelerle test ettim ve çok iyi çalışıyor) Yani, her düğmeyi tıkladığımda, tüm düğmeler yerine sadece bu düğmeyi etkiliyor.
angular expressionsdocs başına koşul kullanamaz => Kontrol Akış İfadeleri Yok: açısal ifadede aşağıdakilerden hiçbirini yapamazsınız: koşullu, döngüler veya fırlatma. Başka bir işlev veya yönerge kullanın