设置@Input的默认值,以防它从出发开始为空

时间:2019-04-05 09:15:33

标签: angular

我有一个“属性”,它的值来自“对象”。在用户登录之前,该“对象”为null,因此“属性”也为null,并且Angular CLI不会编译我的App。

错误是:

  

错误:模板解析错误:无法绑定到“属性”,因为它不是   已知的“组件”属性。

模板:

<my-directive [attribute]="object.array.length"></my-directive>

“我的指令”组件:

@Input() attribute: number;

因此,在未设置对象的情况下,如何通过为属性设置默认值来防止此错误。因此无论如何,我的属性都会有一个值,并且无论对象的值如何,我的应用程序都会编译。

3 个答案:

答案 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,您也可以初始化属性。