/ / Filtre sur la propriété même si elle n'existe pas - angularjs, angularjs-filter

Filtrer sur la propriété même si elle n'existe pas - angularjs, angularjs-filter

Dans angular 1.2, j'avais un tableau d'objets:

[{
name: "bob"
},{
name: "jack",
archived: false
},{
name: "ted",
archived: true
}]

Ensuite, je répèterais le groupe de personnes et essaierais de filtrer tout objet où archivé = vrai

<div ng-repeat="person in people | filter: {archived: "!" }">

Cela a très bien fonctionné en angular 1.2

Cependant, il ne fonctionne plus lorsque je suis passé à la version angulaire 1.3.

Je sais que je peux simplement écrire ma propre fonction de filtre, mais existe-t-il un moyen correct de filtrer une propriété booléenne égale à true, où cette propriété peut ne pas exister dans tous les objets?

Si la propriété n'existe pas, elle ne doit pas être filtrée. IE dans l'exemple de tableau ci-dessus, seul ted devrait être filtré.

Réponses:

4 pour la réponse № 1

Bien que cela semblait fonctionner dans les versions antérieures à 1.3:

<div ng-repeat="person in people | filter: {archived: "!" }">

Cela fonctionne très bien en angulaire 1.3

<div ng-repeat="person in people | filter: {archived: "!true" }">

1 pour la réponse № 2

UPD: Mis à jour avec le bon code.

Je créerais une fonction d'aide pour cela:

$scope.notArchived = function(el) {
return !el.archived;
};

HTML:

ng-repeat="person in people | filter: notArchived"