首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用html中的变量管道?角9

如何使用html中的变量管道?角9
EN

Stack Overflow用户
提问于 2020-07-17 08:07:01
回答 3查看 3.1K关注 0票数 2

我把整个管道作为参数之一传递给大家,我很难使用它。

对象格式如下所示:

代码语言:javascript
复制
{
    column: 'productExpirationDate', 
    caption: 'Product expiration date', 
    pipe: 'date: \"' + PIPE_DATE_FORMAT + '\"' 
},

PIPE_DATE_FORMAT保存'yyyy-MM-dd'时,输出格式应该是'date: "yyyy-MM-dd"'

如果我试图在html文件中使用它,如

代码语言:javascript
复制
<span *ngIf="element.pipe">{{ row[element.column] | element.pipe }}</span>

它呼喊着

分析器错误:意外令牌‘.

我已经找到了Angular - pass pipe as variable的帖子,但我不知道如何在我的案例中做到这一点。此外,不推荐使用get方法,这只会增加更多的混乱。

我怎么能从变量中使用那个管道呢?

EN

回答 3

Stack Overflow用户

发布于 2020-07-17 08:23:45

定制的烟斗怎么样?您可以在管道中实现这个参数化逻辑,您的html应该如下所示:

代码语言:javascript
复制
<span *ngIf="element.pipe">{{ row[element.column] | myCustomPipe: element.customPipeParams }}</span>

您应该做的就是正确地实现myCustomPipe,当然可以重用现有的角管道,例如。约会烟斗。

票数 2
EN

Stack Overflow用户

发布于 2020-07-17 08:24:10

在这里,你使用管道的方式不太正确。首先,管道文件应该有如下代码:

代码语言:javascript
复制
@Pipe({
    name: 'customDate'
})
export class CustomDateFormat extends DatePipe implements PipeTransform {
    transform(value: any, args?: string): any {
        let formatter;
        switch (args) {
            case 'PIPE_DATE_FORMAT ':
                {
                    formatter = super.transform(value, 'yyyy-MM-dd');
                    break;
                }
        
                
            default:
                {
                    formatter = super.transform(value, 'dd/mm');
                    break;
                }
        }
        return formatter;
    }
}

你的变量应该有这样的值:

代码语言:javascript
复制
{
  column: 'productExpirationDate', 
  caption: 'Product expiration date', 
  pipe: 'customDate: PIPE_DATE_FORMAT ' 
},

您的html应替换为:

代码语言:javascript
复制
<span *ngIf="element.pipe">{{ row[element.column] | element.pipe }}</span>
票数 2
EN

Stack Overflow用户

发布于 2020-07-17 08:23:14

您可以在变量中使用日期格式,并在模板中直接使用此格式。

如下所示:

代码语言:javascript
复制
const PIPE_DATE_FORMAT = 'yyyy-MM-dd'

{
    column: 'productExpirationDate', 
    caption: 'Product expiration date', 
},
代码语言:javascript
复制
<span >{{ row[element.column] | date:PIPE_DATE_FORMAT }}</span>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62949727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档