Поскольку Angular имеет Просмотр инкапсуляции , вы не можете добавить класс стилей CSS дочернего элемента к родительскому, если для обеих его инкапсуляций не установлено значение ViewEncapsulation.None
.Вы должны добавить этот класс либо в sm-input-text.component.scss
.или вы можете добавить его глобально в вашем styles.scss
styles.scss
.no-selectable {
cursor: auto;
background: red;
}
Всякий раз, когда angular рендерит компонент, он изменяет ваш css, чтобы соответствовать ему с этимодин компонент, используя сгенерированный селектор атрибута в вашем css
, например
.no-selectable[ng-content23] {
cursor: auto;
background: red;
}
Если вы хотите решить вашу проблему, вы можете установить инкапсуляцию компонентов на ViewEncapsulation.None
.
@Component({
selector: 'my-app',
template: `
<h1>Hello World!</h1>
<span class="red">Shadow DOM Rocks!</span>
`,
styles: [`
:host {
display: block;
border: 1px solid black;
}
h1 {
color: blue;
}
.red {
background-color: red;
}
`],
encapsulation: ViewEncapsulation.None
})
class MyApp {
}
Вам следует установить ViewEncapsulation.None
на оба sm-input-text.component.ts, page-input-text.component.ts