property - angularjs filter objeto multidimensional json
read json angularjs (1)
No utilicé ng-repeat para mostrar una lista filtrada por un valor de objeto. Aquí hay un plukr de mi intento https://plnkr.co/edit/vD4UfzM4Qg7c0WGTeY18?p=preview
A continuación, devuelve todos mis names
JSON como se esperaba.
<li ng-repeat="item in collection_data">{{navitem.name}}</li>
ahora quiero filtrar y solo mostrar los nombres de los elementos que tienen "foreign_lang": "es",
como en este json snippet
{
"id": "ddb06ba2-6348-4d45-9e63-a6fa3632e5c2",
"created_at": "2015-10-12T18:34:15.668Z",
"updated_at": "2016-04-14T15:55:37.433Z",
"custom_attributes": {
"Display Name": "Activos en Español",
"foreign_lang": "es",
"display_boxes": "false"
},
},
entonces hice esta función de filtro
$scope.filterByDisplay = function() {
$filter(''filter'')($scope.collection_data, [''foreign_lang'', ''es'']);
}
y lo llamó así.
<li ng-repeat="item in collection_data" | filter: filterByDisplay>{{navitem.name}}</li>
No recibí ningún error de consola, pero no obtuve nada.
¿Cómo puedo filtrar correctamente a través de esta colección para solo devolver elementos con ''foreign_lang'', ''es''
como un valor en el json? Consulte el plunkr para ver un ejemplo de trabajo https://plnkr.co/edit/vD4UfzM4Qg7c0WGTeY18?p=preview
Tercer intento (ya que la pregunta fue revisada). Use la función de filtro para verificar cada objeto individualmente y solo para aquellos que pasen la prueba de verdad.
$scope.filterByDisplay = function(value) {
return (value.content)
&& (value.content.custom_attributes)
&& (value.content.custom_attributes.foreign_lang === "es");
}