作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有这个名为 records
的变量,
现在我想在 angular2/typescript 中检查它是否是一个数组?
在 AngularJS 中,我曾经执行以下操作:
ng-if="selectedCol.data && !isArray(selectedCol.data)"
但是当我尝试执行以下操作时,它不起作用;
*ngIf="selectedCol.model.data && !Array.isArray(selectedCol.model.data)"
它给我以下错误:
TypeError: Cannot read property 'isArray' of undefined any inputs?
最佳答案
Angular 2 模板在 Component
的上下文中执行,这意味着,您只能访问在 Component
中定义的属性/方法
最简单的方法是在你的组件
中定义isArray
方法
isArray(obj : any ) {
return Array.isArray(obj)
}
在模板中
*ngIf="isArray(selectedCol.model.data)"
为避免样板代码,使用 isArray
方法定义服务,注册为 Singleton,注入(inject) Component
并使用 isArray
方法通过服务属性
或者,在您的Component
中定义_array
属性并为其分配Array
类型
private _array = Array;
在模板中
*ngIf="_array.isArray(selectedCol.model.data)"
关于javascript - 如何在 Angular 2+ 模板中使用 isArray()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37678697/
我是一名优秀的程序员,十分优秀!