如何在Ionic中以编程方式触发管道?

时间:2018-08-10 08:31:40

标签: angular ionic-framework ionic3 angular-pipe

有什么方法可以在Ionic中以编程方式触发管道?我已经使用管道来显示或隐藏按钮,如下所示:

<ion-list no-lines *ngFor="let item of mylist">
  <ion-card class="card">
    <ion-card-header>
      {{item.name}}
    </ion-card-header>
    <ion-card-content no-lines text-wrap>
      <button ion-button color="danger" (click)="ButtonClick1(item.id)" [class.hide]="item.startDate | checkinButtonEnablePipe: item.endDate">Test Button</button> 
    </ion-card-content>
  </ion-card>
</ion-list>

我的自定义管道的代码是:

import { Pipe, PipeTransform } from '@angular/core';
import moment from "moment";
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/interval';
/**
 * Generated class for the CheckinButtonEnablePipe pipe.
 *
 * See https://angular.io/api/core/Pipe for more info on Angular Pipes.
 */
@Pipe({
  name: "checkinButtonEnablePipe"
})
export class CheckinButtonEnablePipe implements PipeTransform {
  transform(value: Date, value2: Date) {
    var dtstart = moment(value).format("YYYY/MM/DD, h:mm:ss a");
    var dtend = moment(value2).format("YYYY/MM/DD, h:mm:ss a");
    var dtnow = moment().format("YYYY/MM/DD, h:mm:ss a");
       if (dtnow >= dtstart && dtnow <= dtend)
        return false;
      else
        return true; 
  }
}

我正在按5分钟间隔检查一次时间,如果时间在开始日期和结束日期之间,我想显示一个按钮。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您可以使用此解决方案。

import {CheckinButtonEnablePipe} from './pipe_path'

constructor(private checkinButtonEnablePipe:CheckinButtonEnablePipe){
    checkinButtonEnablePipe.transform(value1,value2)
}