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