我有一个名为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)"

10-07 16:37