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.autoScroll
doğruysa, ng sınıfı olmasını istiyorum icon-autoscroll
ve 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 3
Stewie 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'
autoScroll
burada 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 expressions
docs 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