【问题标题】:Angular 4 - param of PipeAngular 4 - 管道参数
【发布时间】:2018-03-16 21:47:30
【问题描述】:

我正在创建一个按钮,单击它会加载数组中的所有项目,我默认的方式是将其拼接到 (0,3)。我对这个实现有疑问。有没有办法设置默认参数,例如= 'a' 如果 'b' 全部加载?这个按钮应该像显示更多按钮一样使用。

import { Pipe, PipeTransform } from "@angular/core";

@Pipe({
  name: "reverse"
})
export class ReversePipe implements PipeTransform {
  transform(value: any, param: any) {

    if (param) {
        value.reverse();
      if (param === "a") {
        return value.reverse().slice(0, 3);
      } 
    }
  }
}

组件.ts

<ng-container *ngIf="items > 0" > 
    <div *ngFor="let review of product$ | async | reverse:param; let i = index" >
      <ngb-rating [(rate)]="review.rate" [readonly]="true"></ngb-rating> {{review.rate}}

      <p>{{i+1}}.) {{ review.description.description }}</p>
      <br />
      <ng-container *ngIf="review.user">
      <p class="float-right">Dodał użytkownik: {{ review.user }}</p>
    </ng-container>
      <hr>

    </div>
    <button *ngIf="items > 3" (click)="param = 'a'">Pokaż wszystkie</button>
  </ng-container>

【问题讨论】:

    标签: javascript angular pipe


    【解决方案1】:

    是的,您可以在 Typescript 中设置默认参数

     transform(value: any, param: any='a') {
        //...
     }
    

    【讨论】:

    • 问题是,当我设置为 'a' 时,我得到的新数组没有 3 个切片记录,我需要它们全部显示,切片前需要一些副本
    • 我写的是 splice :P 不是 slice,当我给你写信的时候我发现了 hehe ;D
    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2018-07-16
    • 2017-12-05
    • 2018-01-14
    • 1970-01-01
    相关资源
    最近更新 更多