У меня есть проблема. Я строю компонент в угловой библиотеке:
<button
class="btn btn-white btn-home"
[class]="getClassBySeverity()"
[disabled]="disabled"
[hidden]="!renderer"
[ngClass]="{ uppercase: uppercase }"
[type]="type"
[style.color]="labelColor"
[style.backgroundColor]="backgroundColor"
>
<span [hidden]="!hasIcon()">
<span
[ngClass]="{ 'btn-icon-left': icon }"
[hidden]="!isLeftPosition()"
[class]="icon"
></span
>{{ label
}}<span
[hidden]="isLeftPosition()"
[ngClass]="{ 'btn-icon-right': icon }"
[class]="icon"
></span>
</span>
<span [hidden]="hasIcon()">{{ label }}</span>
</button>
Но когда я встраивал этот компонент в свое приложение, я получал:
ОШИБКА NullInjectorError: StaticInjectorError (AppModule) [NgClassImpl-> ElementRef]: StaticInjectorError (Платформа: ядро) [NgClassImpl -> ElementRef]: NullInjectorError: Нет поставщика для ElementRef!
Это происходит потому, что ngClass .
Если я создаю свой компонент внутри приложения, он работает нормально.
Я обнаружил проблему в github, в которой мне нужно поместить preserveSymlinks в мой tsconfig.lib. json :
"angularCompilerOptions": {
"annotateForClosureCompiler": true,
"skipTemplateCodegen": true,
"strictMetadataEmit": true,
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true,
"enableResourceInlining": true,
"preserveSymlinks": true
}
Но это все равно не работает.
Кто-нибудь знает правильный способ создания библиотек на Angular?
Спасибо!