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.