角度表达式无法使用构造函数属性分辨变量类型

Angular expression is unable to tell variable type using constructor property

本文关键字:属性 变量 类型 构造函数 表达式      更新时间:2023-09-26


使用角度表达式,我试图显示范围变量是否是一个数组。
我尝试使用variable.constructor === Array来检查相同的内容,但在表达式中始终显示结果false

当我使用范围函数来return variable.constructor === Array时,我得到了正确的结果。

谁能说出来,为什么表情会以这种方式表现。此外,如何与内联表达式语句进行相同的检查。

查看演示相同问题的 Plunker,在这里
谢谢。

在你的作用域中没有名为 Array 的变量,所以表达式 variable.constructor === Array 基本上是返回 variable.constructor === undefined 的结果。

这就是为什么它总是错误的。

没有已知的数组,所以你实际上是在比较一个值和未定义。

要测试一个值是否是一个数组,你可以使用名为isArray()的内置Angular函数。

有关更多信息,请参阅此处的答案:用于检查模型是数组还是对象的角度表达式

你必须

在JS中使用Array.isArray(variable)

更多关于 MDN 的信息