Это работает как показано ниже. Обратите внимание на encapsulation: ViewEncapsulation.None
. Это отключит значение по умолчанию Emulated DOM
, поэтому стили этого компонента будут также применимы к дочерним элементам. В противном случае по умолчанию Emulate DOM
защищает области действия каждого компонента (поэтому он не работал в вашем случае).
См. Также документацию .
Однако это не решит вашу проблему на самом деле. Потому что согласно документации:
[ViewEncapsulation] None означает, что Angular не выполняет инкапсуляцию вида. Angular добавляет CSS к глобальным стилям. Обсуждаемые ранее правила определения границ, изоляции и защиты не применяются. По сути, это то же самое, что и вставка стилей компонента в HTML.
Что фактически означает, что вывод будет в любом случае глобальным.
Так что, наверное, проще всего один раз добавить в свой основной styles.scss
:
@import '~/handsontable/dist/handsontable.full.css';
Работа с ViewEncapsulation.None
инкапсуляцией.
// component.ts
@Component({
selector: 'app-table',
template: `<hot-table ....></hot-table>`,
styleUrls: ['./table.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class TableComponent {
...
}
// component.scss
@import '~/handsontable/dist/handsontable.full.css';