如何在Angular 2+视图中访问JavaScript原型方法?

时间:2018-04-23 14:50:34

标签: javascript angular typescript angular-template

有没有办法在角度5视图中访问JavaScript全局对象构造函数,比如Array,而不在组件中声明它们?

对于我的场景,我需要在视图中访问Array.from()。

我目前正在声明Array:any作为我的组件的字段的一部分,并在构造函数中初始化为:this.Array = Array。 有更好/推荐的方式吗?

1 个答案:

答案 0 :(得分:0)

可以使用hack {{ [].constructor.from(foo) }}

这绝不应该在实际应用中完成,因为它具有代码气味(如评论所述),以负面方式影响性能并指示潜在的XY问题。

这种逻辑应该转移到组件类。即使在模板中使用Array.from来从其他iterables创建数组,它最好也必须用作 pure 管道:

@Pipe({ name: 'array' })
class ArrayPipe implements PipeTransform {
  transform(iterable: ArrayLike<any> | Iterable<any>): Array<any> {
    return Array.from(iterable);
  }
}