有没有办法在角度5视图中访问JavaScript全局对象构造函数,比如Array,而不在组件中声明它们?
对于我的场景,我需要在视图中访问Array.from()。
我目前正在声明Array:any作为我的组件的字段的一部分,并在构造函数中初始化为:this.Array = Array。 有更好/推荐的方式吗?
答案 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);
}
}