angular - 将管道输出另存为变量
问题描述
有没有办法将管道表达式的结果保存到变量中,以便在满足条件时使用?
<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>
解决方案
好吧,您始终可以通过组件的构造函数注入管道并使用它:
@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
然后在您的模板中只需使用elapsedDays
orresult
变量
推荐阅读
- javascript - 在 ngx-pagination 上添加第一页和最后一页 - 角度 9
- java - 方法应该在实现动作的类中还是在实现的类中?
- php - 如何使用 php 在我的 web 上显示 sql concat
- java - 使用 apache camel 从 slack 用户向另一个 slack 用户发送消息
- unit-testing - 如何在测试中模拟嵌套客户端
- python - 有什么方法可以在 python 中扩展字典?
- javascript - 当三个下拉列表的总和大于 300 时显示 div
- visual-studio-code - 我可以在“格式化文档”上执行指定的任务吗?
- c# - C# WinForm 为什么 form1.Text = "title" 不会改变我的表单标题?
- css - Scss - 为什么将 rgba 转换为 hsla