我确实有问题。 我正在Angular库中构建组件:
<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中构建库的正确方法吗?
谢谢!