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.
