gpt4 book ai didi

Angular - 将管道作为变量传递

转载 作者:行者123 更新时间:2023-12-03 21:21:45 25 4
gpt4 key购买 nike

如何存储和使用来自变量的管道信息?

我已经搜索了很多,但找不到解决方案。

我想要实现的是将任何有效的管道信息作为变量(十进制、百分比、日期、自定义等)传递。遵循一个简单的例子:

parent.component.ts:

columnsDef = {
value: 0.35,
pipeInfo: 'percent:"0.2-2":"pt-BR"'
};

parent.component html:
<app-display-component [columnsDef]="columnsDef"></app-display-component>

app-display.component html:
<h1> {{ columnsDef.value | columnsDef.pipeInfo }}</h1>

预期的输出是格式化为百分比的值,但我得到的只是模板解析错误:

错误错误:未捕获( promise ):错误:模板解析错误:解析器错误:意外标记“。”

最佳答案

您可以创建一个自定义管道,它将另一个管道作为参数并将其应用于给定的值。

这是@balu 在 this answer 中创建的动态管道的示例.查看链接了解更多信息。

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


@Pipe({
name: 'dynamicPipe'
})
export class DynamicPipe implements PipeTransform {

public constructor(private injector: Injector) {
}

transform(value: any, pipeToken: any, pipeArgs: any[]): any {
if (!pipeToken) {
return value;
}
else {
let pipe = this.injector.get(pipeToken);
return pipe.transform(value, ...pipeArgs);
}
}
}

关于Angular - 将管道作为变量传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53198805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com