Untuk melewati yang tidak digunakan lagi ::ng-deep
, saya biasanya menonaktifkan ViewEncapsulation
. Meskipun ini bukan pendekatan terbaik, ini telah membantu saya dengan baik.
Untuk menonaktifkan ViewEncapsulation
, lakukan hal berikut di komponen Anda:
import { Component, ViewEncapsulation } from '@angular/core';
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class HeaderComponent {
}
Ini akan membuat gaya .scss dalam komponen ini global ke seluruh aplikasi. Agar gaya tidak naik rantai ke komponen induk dan saudara, bungkus seluruh scss dengan selektor seperti ini:
app-header {
}
Sekarang, gaya yang ditentukan di sini akan turun ke komponen anak-anak sehingga Anda harus ekstra spesifik dengan pemilih css dan memperhatikan p dan q Anda saat menambahkan CSS (mungkin tambahkan pemilih anak yang ditentukan dalam aplikasi Angular Anda dan kemudian gayanya).
Saya mengatakan ini bukan pendekatan terbaik karena paragraf di atas, tetapi ini telah membantu saya dengan baik.
::ng-deep
tidak akan kemana-mana. Ini akan selalu menjadi pengaturan yang dapat Anda aktifkan. Sama sekali tidak mungkin mereka dapat menghapusnya sekarang tanpa reaksi komunitas besar-besaran. Lihat berapa banyak hasil yang kembali untuk penelusuran ini github.com/search?q=%3A%3Ang-deep&type=Code - ini seperti mengatakan!important
properti css akan menghilang