【问题标题】:How to show elements of a list using `<*ngIf>` and enum variable如何使用`<*ngIf>`和枚举变量显示列表元素
【发布时间】:2017-12-08 14:05:09
【问题描述】:

我有一个 Angular 列表,我想用一个枚举变量显示这个列表的元素。例如,如果 enum = 0 则显示所有元素,如果 enum = 1 则仅显示 list.status = true 的元素,如果 enum = 2 则仅显示 list.status = false 的元素。

<ul class="list" style="list-style-type:none">
    <div>
      <li *ngFor="let list of currentList">
        <div>
          <input type="checkbox" class="stat" (click)="status(list)" [(checked)]="list.status" />
          <span class="task">{{list.task}}</span>
          <button class="listBtn" (click)="edit(list)">EDIT</button>
          <button class="listBtn" (click)="remove(list)">REMOVE</button>
        </div>
      </li>
    </div>
  </ul>

【问题讨论】:

    标签: html angular enums angular-ng-if


    【解决方案1】:

    您需要一个在检查后返回布尔值的方法,例如

    public checkEnum( list: any ): boolean {
      if ( enum == 0 ) {
       return true;
      }
      if ( enum == 1 && list.status == true ) {
       return true;
      }
      if ( enum == 2 && list.status == false ) {
       return true;
      }
      return false;
    }
    

    然后在模板中:

        <div *ngIf="checkEnum(list)">
          <input type="checkbox" class="stat" (click)="status(list)" [(checked)]="list.status" />
          <span class="task">{{list.task}}</span>
          <button class="listBtn" (click)="edit(list)">EDIT</button>
          <button class="listBtn" (click)="remove(list)">REMOVE</button>
        </div>
    

    看看有没有帮助。

    【讨论】:

    • 谢谢,顺便说一句,我应该如何声明枚举?像这样:enum ListEnum { all = 'all', completed = 'completed', uncompleted = 'uncompleted', }
    • 您可以像 angular self 那样执行此操作(即 github.com/angular/angular/blob/master/packages/http/src/… ),也可以将其作为字符串执行,例如 public ListEnum: 'all' | 'completed' | 'uncompleted' | null; 并分别设置。
    猜你喜欢
    • 2021-03-15
    • 2018-07-25
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多