我有一个“属性”,它的值来自“对象”。在用户登录之前,该“对象”为null,因此“属性”也为null,并且Angular CLI不会编译我的App。
错误是:
错误:模板解析错误:无法绑定到“属性”,因为它不是 已知的“组件”属性。
模板:
<my-directive [attribute]="object.array.length"></my-directive>
“我的指令”组件:
@Input() attribute: number;
因此,在未设置对象的情况下,如何通过为属性设置默认值来防止此错误。因此无论如何,我的属性都会有一个值,并且无论对象的值如何,我的应用程序都会编译。
答案 0 :(得分:1)
在模板中使用条件属性
?
运算符。
更改为:
<my-directive [someAttribute]="someObject?.array.length"></my-directive>
这将告诉angular仅在array
可用时尝试访问someObject
属性。
答案 1 :(得分:1)
您可以这样设置默认值:
@Input() attribute: number=0;
答案 2 :(得分:0)
您可以通过以下方式初始化输入:
@Input() attribute: number | null;
因此,即使object为null,您也可以初始化属性。