Если вы используете сторонний компонент внутри компонента, для которого encapsulation
установлен в нативный, глобальные стили не будут применяться к этому стороннему компоненту.Например, если вы используете сторонний компонент ngb-modal-window
внутри вашего собственного компонента, скажем, app-my-own-component
, инкапсуляция которого установлена в native, глобальные стили не будут применяться к ngb-modal-window
, потому что он будет находиться внутри теневого корня (родительского элемента app-my-own-component
).).
@Component({
selector: 'app-my-own-component',
template: '<ngb-modal-window></ngb-modal-window>',
encapsulation: ViewEncapsulation.Native,
styles: ['@import "~bootstrap/scss/bootstrap.scss";']
})
Однако добавление стилей в app-my-own-component
будет применяться к ngb-modal-window
в этом случае.
Еще одна вещь, которую вы можете сделать, это установить encapsulation
в ViewEnacpsulation.Native
вглобальный уровень, так что все компоненты в вашем приложении будут иметь собственную инкапсуляцию.Вы можете сделать это при начальной загрузке модуля приложения в файле main.ts:
Измените это: platformBrowserDynamic().bootstrapModule(AppModule)
на следующее:
platformBrowserDynamic().bootstrapModule(AppModule, [
{
defaultEncapsulation: ViewEncapsulation.Native
}
])
Вам придется импортировать ViewEncapsulation
внутри main.где бы ни было имя файла, где вы загружаете свой модуль.