Saya mencoba menginisialisasi komponen dengan atau tanpa Shadow DOM berdasarkan browser (karena IE tidak mendukung Shadow DOM).
Saya memeriksa apakah itu IE11 dan mengatur enkapsulasi ke Emulated
untuk IE dan ShadowDom
untuk browser lain.
const agent = window.navigator.userAgent;
const isIe11 = agent.indexOf('MSIE') === -1 && agent.indexOf('Trident') > 0;
@Component({
selector: 'my-web-component',
templateUrl: '...html',
styleUrls: ['...scss'],
encapsulation: isIe11 ? ViewEncapsulation.Emulated : ViewEncapsulation.ShadowDom
})
export class NavbarComponent implements OnInit { ... }
Nilai isIe11
benar sesuai dengan nilai kembalian pemeriksaan browser tetapi enkapsulasi selalu berakhir menjadi ViewEncapsulation.Emulated
.
Saya mengonfirmasi hal ini melalui inspektur DOM karena saya tidak melihat #shadow-root
di DOM. Sebaliknya, saya melihat _ngcontent-c0
yang mengonfirmasi bahwa enkapsulasi telah ditiru.