Gaya ngClass dengan tombol dash in

165

Saya harap ini menghemat sakit kepala seseorang dengan gaya yang menggunakan tanda hubung, terutama karena bootstrap telah menjadi begitu populer.

Saya menggunakan sudut 1.0.5 dengan cara

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.js"></script>

Dalam dokumentasi ngClass , contohnya sederhana, tetapi juga menyebutkan ekspresi dapat berupa peta nama kelas ke nilai boolean. Saya mencoba menggunakan gaya "ikon-putih" pada ikon saya seperti yang ditunjukkan dalam dokumentasi bootstrap , tergantung pada variabel boolean.

<i class="icon-home" ng-class="{icon-white: someBooleanValue}">

Baris di atas tidak berfungsi. Kelas tidak ditambahkan icon-whitekapan someBooleanValuebenar. Namun, jika saya mengubah kunci iconWhite, berhasil ditambahkan ke daftar nilai kelas. Bagaimana cara menambahkan nilai dengan tanda hubung?

Menipu
sumber
1
Hai, selamat datang di SO! Anda harus memperbarui pertanyaan Anda untuk membaginya menjadi pertanyaan dan jawaban - menjawab pertanyaan Anda sendiri adalah OK, dan didorong jika itu membantu. Dengan begitu Anda dapat menerima jawaban Anda, dan pencarian orang lain dapat melihat bahwa pertanyaan tersebut memiliki jawaban yang berhasil.
Alex Osborn
Terima kasih atas saran Anda!
Foo L

Jawaban:

364

Setelah berjam-jam meretas, ternyata tanda hubung diinterpolasi! Diperlukan kutipan.

<i class="icon-home" ng-class="{'icon-white': someBooleanValue}">

Saya harap ini membantu seseorang merobek rambut mereka.

MEMPERBARUI:

Di versi Angular yang lebih lama, menggunakan backslash juga berfungsi, tetapi tidak di versi yang lebih baru.

<i class="icon-home" ng-class="{icon\-white: someBooleanValue}">

Yang pertama mungkin lebih disukai, karena Anda dapat lebih mudah mencarinya di editor favorit Anda.

Menipu
sumber
15
Terima kasih untuk ini. Saya sudah membuang WAY TERLALU BANYAK waktu yang satu ini, juga.
taudep
2
Terima kasih!!! Saya tahu ini sedang terjadi tetapi saya tidak yakin bagaimana menyelesaikannya. TERIMA KASIH!
Mark Ford
1
Saya menggunakan AngularJS 1.2.3. "\ -" tidak berfungsi untuk saya. "''" Bekerja dengan sangat baik.
bobzsj87
1
Bertanya-tanya mengapa ini tidak berhasil bagi saya ketika saya tampaknya mengikuti contoh lain!
nevster
$ scope.someBooleanValue = true
zloctb
11

\'icon-white\' berfungsi juga (dengan AngularJS 1.2.7)

Bromoxid
sumber
Ini adalah jawaban terbaik karena ini adalah yang paling ramah di masa depan dan kompatibel dengan masa lalu
Eric Steinborn
2
Hai! @EricSteinborn Saya dari masa depan, saya datang ke sini untuk memperingatkan Anda: Ini sama sekali tidak ramah!
Typo
0

alternatif untuk penggunaan ng-class:

    .menu-disabled-true{
color: red;
}
    .menu-disabled-false{
color: green;
}


<div ng-controller="DeathrayMenuController">
<p class=menu-disabled-{{status}}>shanam</p>
 <button ng-click="action()">click me</button>
</div>

<script>



function DeathrayMenuController($scope) {
    $scope.status=true
    $scope.action= function(){
      $scope.status=!$scope.status
    }
}
</script>
zloctb
sumber