Shi*_*ath 5 javascript typescript angular
嗨我使用Angular 2管道返回对象的键,它是一个不纯的管道,它被执行多次,阻止其他一些脚本,我怎么能避免多次执行不纯的管道?我的代码如下:
import {Pipe,PipeTransform} from '@angular/core';
@Pipe({ name: 'NgforObjPipe', pure: true })
export class NgforObjPipe implements PipeTransform {
transform(value, args:string[]):any {
let keys = [];
for (let key in value) {
keys.push({key: key, value: value[key]});
}
console.log('pipeeeeeeeeeeeeeee', keys);
return keys;
}
}
Run Code Online (Sandbox Code Playgroud)
没有办法阻止这种情况。这就是不纯管道的用途。
您可以做的是,确保在方法内部完成transform()尽可能少的工作,例如通过缓存结果并仅在传递的值实际更改时重新计算。
您还可以使用它Object.keys()来获得更高效的代码。另请参阅如何在 Angular 2 中使用 *ngFor 迭代 [object object]
ChangeDetectionStrategy.OnPush可用于减少运行更改检测的次数,以最大程度地减少对管道的调用次数。
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |