Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 带TypeScript的角度管道中的MapToiTable_Angular_Typescript_Typescript2.0_Angular Pipe - Fatal编程技术网

Angular 带TypeScript的角度管道中的MapToiTable

Angular 带TypeScript的角度管道中的MapToiTable,angular,typescript,typescript2.0,angular-pipe,Angular,Typescript,Typescript2.0,Angular Pipe,尝试以角度实现管道。在意识到ngFor不适用于地图之后。一些研究让我相信,未来的功能将解决这个问题,但与此同时,一个可映射的管道是答案 我有以下代码: import {Pipe, PipeTransform} from '@angular/core'; @Pipe({ name: 'mapToIterable' }) export class MapToIterablePipe implements PipeTransform { transform(map: Map<stri

尝试以角度实现管道。在意识到ngFor不适用于地图之后。一些研究让我相信,未来的功能将解决这个问题,但与此同时,一个可映射的管道是答案

我有以下代码:

import {Pipe, PipeTransform} from '@angular/core';

@Pipe({
  name: 'mapToIterable'
})
export class MapToIterablePipe implements PipeTransform  {
  transform(map: Map<string, Object>, args: any = []): any {
    const a: any[] = [];
    console.log(map.keys());  // <- works as expected
    for (const k in map) {
      if (map.has(k)) {
        console.log("hello");  // <- never executes
        console.log(k);
        a.push({key: k, val: map.get(k)});
      }
    }
    console.log(a); // <- always empty
    return a;
  }
}

export const MAPTOITERABLE_PROVIDERS = [
  MapToIterablePipe
];
从'@angular/core'导入{Pipe,PipeTransform};
@烟斗({
名称:“MapToItemable”
})
导出类MapToItemablePipe实现PipeTransform{
转换(map:map,args:any=[]):any{
常数a:任意[]=[];

console.log(map.keys());//
map
“键”不是对象键,不能通过
object.keys()
操作符中的
获取

考虑到
map.keys()

for (const key of Array.from(map.keys())) {
  // this check is unneeded
  // if (map.has(k)) {
  ...
}
或者在

或者只是

const a: any[] = Array.from(map.entries()).map(([key, val]) => ({ key, val }));
由于TypeScript实现扩展运算符的方式,
[…iterable]
的工作方式与2.2及更低版本中的
Array.from(iterable)
的工作方式不同。

的可能重复
const a: any[] = Array.from(map.entries()).map(([key, val]) => ({ key, val }));