Pregunta AngularJS: Use array (múltiples valores) para un filtro


Tengo el siguiente filtro en angularJS:

<div ng-repeat="node in data | filter:{parentID:12}"></div>

Esto funciona bien (solo obtengo datos, donde parentID es 12).

En el siguiente paso, quiero obtener todos los datos, donde parentID es (por ejemplo) 12,13,25 o 30.

Intenté seguir (no funciona):

filter:{parentID:[12,13,25,30]}

¿Hay alguna manera de construir un filtro como se describe?

¡Muchas gracias!


5
2017-10-28 09:28


origen


Respuestas:


¡Una función de predicado se adaptará a tus necesidades! Desde el doc:

function(value, index): A predicate function can be used to write arbitrary
filters. The function is called for each element of array. The final result
is an array of those elements that the predicate returned true for.

Por ejemplo:

<div ng-repeat="node in data | filter:checkParentID"></div>

Y en tu mando

$scope.checkParentID = function(value, index) {
  return value.parentID && [12,13,25,30].indexOf(value.parentID) !== -1;
}

6
2017-10-28 09:37