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 № 1Bien 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"