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