/ / Filtro en la propiedad incluso si no existe - angularjs, angularjs-filter

Filtre en la propiedad incluso si no existe: angularjs, angularjs-filter

En angular 1.2 tuve una serie de objetos:

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

Luego, repetiría ng sobre la matriz de personas e intentaría filtrar cualquier objeto donde archivado = verdadero

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

Esto funcionó muy bien en angular 1.2

Sin embargo, dejó de funcionar cuando actualicé a angular 1.3.

Sé que simplemente puedo escribir mi propia función de filtro, pero existe una forma correcta de filtrar donde una propiedad booleana es igual a verdadero, donde esa propiedad podría no existir en todos los objetos.

Si la propiedad no existe, no se debe filtrar. IE en la matriz de ejemplo anterior solo ted debe filtrarse.

Respuestas

4 para la respuesta № 1

Si bien esto parecía funcionar en pre 1.3:

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

Esto funciona muy bien en angular 1.3

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

1 para la respuesta № 2

UPD: Actualizado con el código correcto.

Crearía una función auxiliar para esto:

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

HTML:

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