我必须迭代模板中的对象键,所以我制作了这个自定义管道:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:eb1="http://rep.evenex.dk/schema/evenex/eBusiness_01"
exclude-result-prefixes="eb1">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="eb1:EANNo">
<xsl:copy>
<xsl:value-of select="format-number(., '0000000000000')"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
在我的页面中,它按以下方式导入:
import {PipeTransform, Pipe} from "@angular/core";
@Pipe({name: "keys"})
export class KeysPipe implements PipeTransform {
transform(value: any, args?: any[]): any[] {
return Object.keys(value);
}
}
但是当我构建项目时会出现这个错误:
类型的参数&#39; {selector:string; templateUrl:string;管道:typeof KeysPipe []; }&#39;不能分配给&#39;组件&#39;类型的参数。对象文字只能指定已知属性,并且“管道”和“管道”可以指定。类型&#39;组件&#39;。
中不存在
有什么想法吗?我没有在import {KeysPipe} from "../../pipes/keys-pipe";
import {Component} from '@angular/core';
@Component({
selector: 'page-history',
templateUrl: 'history.html',
pipes: [ KeysPipe ]
})
export class HistoryPage {}
或app.module.ts
中声明它。
感谢。
答案 0 :(得分:4)
很久以来pipes
中就没有@Component()
了。
现在是
@NgModule({
declarations: [ KeysPipe ]