Я имею в виду несколько обходных путей, поэтому надеюсь, что все поможет.
Как уже упоминалось в комментариях, добавьте в декоратор родительского компонента свойство 'encapsulation' (того же уровня, что и 'селектор' и тому подобное) с помощьюViewEncapsulation.None.Имейте в виду, что при таком подходе стили родительского компонента проникают во все приложение, поэтому будьте осторожны с этим, если только родительский селектор не будет действительно конкретным, например .my-specific-parent-selector-which-isnt-gonna-be-repeated
, используйте свойство @Input дочернего компонента, чтобыпередайте валидацию проверки и примените класс непосредственно в соответствии с переданным вводом.
добавьте селектор .parent-selector .is-invalid
к родительскому элементу, а затем добавьте за ним ::ng-deep .parent-selector .is-invalid
, чтобы этот конкретный стиль проникал в дочерние классы.Будьте осторожны, так как этот подход не рекомендуется, поэтому он может перестать работать в будущем (хотя и маловероятно)
Примечание: также обратите внимание, что вы применяете класс is-invalid
к селектору ... если вы проверяете с помощью ChromeВ веб-браузере вы увидите, что этот селектор, как правило, отличается от того, где вы пытаетесь добавить свой класс ... так что, возможно, ваш лучший подход - использовать входные данные