我有一个名为records
的变量,
现在我想检查一下它是否为angular2 / typescript中的数组?
在AngularJS中,我曾经执行以下操作:
ng-if="selectedCol.data && !isArray(selectedCol.data)"
但是,当我尝试执行以下操作时,它不起作用;
*ngIf="selectedCol.model.data && !Array.isArray(selectedCol.model.data)"
它给我下面的错误:
最佳答案
Angular 2模板是在Component
的上下文内执行的,这意味着,您只能访问在Component
内定义的属性/方法
最简单的方法是在isArray
中定义Component
方法
isArray(obj : any ) {
return Array.isArray(obj)
}
在模板中
*ngIf="isArray(selectedCol.model.data)"
为了避免样板代码,请使用
isArray
方法定义Service,注册为Singleton,注入(inject)Component
并通过Service属性使用isArray
方法或者,在
_array
中定义Component
属性,并为其分配Array
类型 private _array = Array;
在模板中
*ngIf="_array.isArray(selectedCol.model.data)"