Mengapa ini tidak berhasil, seperti yang dinyatakan dalam dokumen?

renderer.setElementClass(el, 'class1', false); // replace class
renderer.setElementClass(el, 'class2', true); // add a class

Ini menghasilkan elemen hanya memiliki class2 bukan keduanya.

Referensi dokumen perender Angular2

9
Romain Bruckert 17 Maret 2017, 15:52

2 jawaban

Jawaban Terbaik

Ternyata opsi isAdd sama dengan menghapus kelas, jadi berikut ini berfungsi untuk mengalihkan kelas:

renderer.setElementClass(el, 'class1', false); // remove class1
renderer.setElementClass(el, 'class2', true); // add class2

Oh, tidak ada yang aneh dengan memanggil metode setElementClass untuk menghapusnya tentu saja...

12
Romain Bruckert 17 Maret 2017, 12:55

Sekedar menyebutkan bahwa Renderer sudah tidak digunakan lagi sekarang, dan telah digantikan oleh Renderer2. Di kelas Renderer2 ada dua metode yang menggantikan setElementClass dari Renderer yang tidak digunakan lagi.

  • Untuk menambahkan kelas:

    renderer.addClass(this.elementRef.nativeElement, 'popup');

  • Untuk menghapus kelas:

    renderer.removeClass(this.elementRef.nativeElement, 'popup');

Untuk informasi lebih lanjut, lihat: https://angular.io/api/core/Renderer2

Untuk contoh kode dalam bentuk tutorial lihat: https://alligator.io/angular/using-renderer2/< /a> khususnya bagian 'addClass / removeClass'

13
Martijn van den Bergh 13 Agustus 2018, 11:15