设置@Input的默认值,以防它在出发时为空



我有一个"属性",它的值来自一个"对象"。这个"对象"在用户登录之前为空,因此"属性"也是空的,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;

因此,即使对象为空,您也可以初始化该属性。

最新更新