角度表达式无法使用构造函数属性分辨变量类型
Angular expression is unable to tell variable type using constructor property
使用角度表达式,我试图显示范围变量是否是一个数组。
我尝试使用variable.constructor === Array
来检查相同的内容,但在表达式中始终显示结果false
。
当我使用范围函数来return variable.constructor === Array
时,我得到了正确的结果。
谁能说出来,为什么表情会以这种方式表现。此外,如何与内联表达式语句进行相同的检查。
查看演示相同问题的 Plunker,在这里
谢谢。
在你的作用域中没有名为 Array
的变量,所以表达式 variable.constructor === Array
基本上是返回 variable.constructor === undefined
的结果。
这就是为什么它总是错误的。
没有已知的数组,所以你实际上是在比较一个值和未定义。
要测试一个值是否是一个数组,你可以使用名为isArray()的内置Angular函数。
有关更多信息,请参阅此处的答案:用于检查模型是数组还是对象的角度表达式
你必须
在JS中使用Array.isArray(variable)
。
更多关于 MDN 的信息
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- Javascript使用变量设置属性
- 如何检查名为id的变量属性
- 将css属性替换为变量
- 如何从字符串变量访问对象属性
- 如何从jQuery设置控制器或全局变量的属性
- 将属性作为字符串存储在变量中
- 如何为HTML属性/选择器创建全局名称空间或变量
- 变量属性jQuery
- 如何获取保存在变量中的HTML代码的任何属性的值
- 在 javascript css 属性中使用变量
- 使用变量作为对象的属性名称
- 什么's;var'声明的变量和'这'在Javascript中创建了属性
- 如何在Jquery html elemet属性中附加字符串变量
- Javascript:如何对属性变量(例如var.hello.push)执行数组方法?太习惯AS3了
- 为什么调试器会给你“;undefined不是函数“;而不是只告诉您不是函数的属性/变量的名称
- 传递属性变量:黑屏
- 余烬模板不更新属性变量的变化
- 从方法返回时未解析的属性变量