如何比较"2022-01-07 15:43:00";angular html的*ngIf
中具有当前日期时间的字符串变量?
请提供帮助和指导。
您可以使用ngIf
指令中的函数,如*ngIf="showBasedOnDate(date)"
,在TS文件中创建此函数并处理那里的所有逻辑。返回true
或false
以显示元素。
<div *ngIf="showBasedOnDate(date)">
I am shown
</div>
showBasedOnDate(date) {
// here you can have as much logic as you would like, based on your needs.
return (date === new Date() );
}
问题是:这真的是你想要的吗?该元素仅在相当短的时间内可见。我想你想在达到给定时间后显示一个元素。
还要记住,将方法绑定到模板通常被认为是不好的做法,因为它在任何渲染周期都会重新计算。绑定到在给定时间发出的异步Observable将是一种更好的方法。
所以你的绑定可能看起来像
*ngIf="(isNow$ | async)===true"
而您的具体实现可能类似
isNow$: Observable<boolean>;
...
const dateDifference = date-Date.now();
this.isNow$ = of(true).pipe(delay(dateDifference);
这基本上可以让你计算力矩,然后从那时起在dom中显示元素。如果你真的只想在时间相等的时刻看到DOM元素,并立即再次关闭它,那么你应该将Observable重新发出为false。