Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.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 ng生成-来自管道的产品错误_Angular - Fatal编程技术网

Angular ng生成-来自管道的产品错误

Angular ng生成-来自管道的产品错误,angular,Angular,我有一个 ERROR Supplied parameters do not match any signature of call target 由我的烟斗引起的 import { Pipe, PipeTransform } from '@angular/core'; @Pipe({name: 'keys'}) export class KeysPipe implements PipeTransform { transform(value, args:string[]) : any

我有一个

ERROR Supplied parameters do not match any signature of call target
由我的烟斗引起的

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

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
    transform(value, args:string[]) : any {
        let keys = [];
        for (let key in value) {
            keys.push({key: key, value: value[key]});
        }
        return keys;
    }
}
我把这个管叫做

<span *ngFor="let property of properties | keys">


有人看到这个问题吗?谢谢您的检查。

好的,回答我自己的问题:在没有参数的情况下调用管道会导致错误。这
args:string[]
当然需要字符串。所以我重写了管道

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

@Pipe({name: 'keys'})
export class KeysPipe implements PipeTransform {
    transform(value) : any {
        let keys = [];
        for (let key in value) {
            keys.push({key: key, value: value[key]});
    }
        return keys;
    }
}

也许有人能帮你解决这个问题。

没错,只是出于好奇,你为什么需要一个
管道
?您没有使用传递的参数
,即:key
,我猜它是
未定义的
。通过查看您的代码,我假设,
properties
是一个包含许多键的对象数组,而不是
key
,或者它只包含键
key
。无论在何种情况下,您都可以在开始循环之前将数组转换为
对。为什么要在整个循环中应用过滤器?如果您实际使用的是过滤器,并且需要param:
,那么在管道中,将其接受为
转换(value:,args:any)
我将管道用于嵌套的JSON对象,并且必须检查循环中的一些键。无论如何,谢谢你指出这个方向。