Saya mencoba untuk beralih kelas menggunakan elemen 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;
}
Pada dasarnya, jika $scope.autoScroll
itu benar, saya ingin menjadi kelas ng icon-autoscroll
dan jika itu salah, saya menginginkannyaicon-autoscroll-disabled
Apa yang saya miliki sekarang tidak berfungsi dan menghasilkan kesalahan ini di konsol
Error: Lexer Error: Unexpected next character at columns 18-18 [?] in expression [{(isAutoScroll()) ? 'icon-autoscroll' : 'icon-autoscroll-disabled'}].
Bagaimana saya melakukan ini dengan benar?
EDIT
solusi 1: (ketinggalan jaman)
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="{'icon-autoscroll': autoScroll, 'icon-autoscroll-disabled': !autoScroll}"></i>
</button>
EDIT 2
solusi 2:
Saya ingin memperbarui solusi karena Solution 3
, yang disediakan oleh Stewie, harus menjadi yang digunakan. Ini adalah yang paling standar ketika datang ke operator ternary (dan bagi saya paling mudah dibaca). Solusinya adalah
<button class="btn" ng-click="autoScroll = !autoScroll">
<i ng-class="autoScroll ? 'icon-autoscroll' : 'icon-autoscroll-disabled'"></i>
</button>
diterjemahkan menjadi:
if (autoScroll == true) ?
// gunakan kelas 'icon-autoscroll' :
// gunakan lagi'icon-autoscroll-disabled'
autoScroll
sini hanya akan berpengaruh di setiap tombol? (Saya menguji ini dengan beberapa tombol, dan itu bekerja dengan baik juga) Maksud saya, ketika saya mengklik setiap tombol, efeknya hanya tombol itu, bukan semua tombol.
angular expressions
per dokumen => Tidak Ada Pernyataan Aliran Kontrol: Anda tidak dapat melakukan hal-hal berikut dalam ekspresi sudut: conditional, loop, atau throw. Gunakan fungsi atau arahan lain