如何在 Angular 2+ 视图中访问 JavaScript 原型方法?
How to access JavaScript prototype methods in Angular 2+ view?
有没有办法访问 JavaScript 全局对象构造函数,例如 angular 5 视图中的 Array 而无需在组件中声明它们?
对于我的方案,我需要在视图中访问 Array.from()。
我目前将 Array:any 声明为我的组件字段的一部分,并在构造函数中将其初始化为:this.Array = Array。
有better/recommended方法吗?
通过破解是可能的,{{ [].constructor.from(foo) }}
。
在实际应用中永远不要这样做,因为它有代码味道(正如评论中提到的),以负面方式影响性能并表明潜在的 XY 问题。
这种逻辑应该移到组件class。即使 Array.from
应该在模板中用于从其他可迭代对象创建数组,它最好必须用作 pure pipe:
@Pipe({ name: 'array' })
class ArrayPipe implements PipeTransform {
transform(iterable: ArrayLike<any> | Iterable<any>): Array<any> {
return Array.from(iterable);
}
}
有没有办法访问 JavaScript 全局对象构造函数,例如 angular 5 视图中的 Array 而无需在组件中声明它们?
对于我的方案,我需要在视图中访问 Array.from()。
我目前将 Array:any 声明为我的组件字段的一部分,并在构造函数中将其初始化为:this.Array = Array。 有better/recommended方法吗?
通过破解是可能的,{{ [].constructor.from(foo) }}
。
在实际应用中永远不要这样做,因为它有代码味道(正如评论中提到的),以负面方式影响性能并表明潜在的 XY 问题。
这种逻辑应该移到组件class。即使 Array.from
应该在模板中用于从其他可迭代对象创建数组,它最好必须用作 pure pipe:
@Pipe({ name: 'array' })
class ArrayPipe implements PipeTransform {
transform(iterable: ArrayLike<any> | Iterable<any>): Array<any> {
return Array.from(iterable);
}
}