Angular / Typescript – Filter für undefined Properties

Dieses Snippet zeigt eine Möglichkeit, wie man per Angular-Filter aus einem Array von Objekten alle Elemente filtern kann, die ein bestimmtes Property haben / nicht haben.

Angenommen wir haben ein Typescript Objekt definiert …


export interface Item {
  property1: number;
  property2: string;
}

… und im Controller ein Array dieses Objekts als Scope-Variable.


export class MyController {
  public static $inject = ['$scope', '$filter'];

  constructor(
    private $scope: IGeneratorChartDirectiveControllerScope,
    private $filter: ng.IFilterService
  ) {
    this.$scope.vm = this;
    this.$scope.items = [
      <Item>{ property1: 1, property2: true},
      <Item>{ property1: 2, property2: false},
      <Item>{ property1: 3}
    ];
  }
}

Wollen wir jetzt alle Items bekommen, welche die Eigenschaft ‚property2‘ nicht haben, können wir folgenden Filter anwenden:


this.$filter('filter')(this.$scope.items, { property2: '!' }, false);

Wenn wir nur Items bekommen wollen, welche die Eigenschaft’property2′ haben, können wir folgendes machen:


this.$filter('filter')(this.$scope.items, { property2: '!!' }, false);

Ich hoffe wie immer, diese erstbeste Lösung war hilfreich.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert