首页 > 解决方案 > 将管道输出另存为变量

问题描述

有没有办法将管道表达式的结果保存到变量中,以便在满足条件时使用?

<div class="mat-caption" *ngIf="(myDate | daysSinceSomeEvent) > 0">Days since event {{ myDate | daysSinceSomeEvent}}</div>

变成类似的东西

<div class="mat-caption" *ngIf="(myDate | daysSinceSomeEvent) as result > 0">Days since event {{result}}</div>

标签: angularpipe

解决方案


好吧,您始终可以通过组件的构造函数注入管道并使用它:

@Component({...})
export class YourComponent {

    elapsedDays: number

    private _yourDate: Date
    @Input()
    set yourDate(v: Date) {
        this._yourDate = v;
        this.elapsedDays = this.daysSinceSomeEvent.transform(v)
    }
    get yourDate(): Date {
        return this._yourDate
    }

    constructor(private daysSinceSomeEvent: ElapsedTimePipe) {
    }
}

如果您不打算将多个值作为输入传递并将逻辑移动到您的ngOnInit块中,您也可以摆脱属性 getter 和 setter

然后在您的模板中只需使用elapsedDaysorresult变量


推荐阅读