read property mostrar example desde consumir angularjs angularjs-scope angularjs-ng-repeat angularjs-filter

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"); }

Plunk actualizado - Uso de la función de filtro