J'ai un tableau comme ci-dessous
var myArray = [{'id':'73','name':'john'},{'id':'45','name':'Jass'}, etc.]
Maintenant, j'ai un id
73 comment sélectionner cet objet particulier dans le tableau. Je vois que je peux le faire facilement avec jQuery avec grep Y a-t-il une manière angulaire de faire cela?
Étant donné que la plupart des utilisateurs qui développent une application avec angular obtiennent toujours les données d'un tableau d'objets (principalement pour la table), une fonction d'assistance devrait exister pour cela?
Afin que je puisse changer les données de la ligne avec l'ID de la ligne en mettant à jour le tableau d'objets.
Je ne veux pas lier cela en vue. Je veux manipuler les données et mettre à jour les données avec la fonction.
Par exemple. J'ai une liste de table. Si l'utilisateur final édite une ligne de la table, j'ai l'ID de l'objet. Après que l'utilisateur final ait cliqué sur save, je dois mettre à jour le tableau, puis revenir à la liste des tables.
vous pouvez utiliser le filter
https://docs.angularjs.org/api/ng/filter/filter d'angular
dans votre contrôleur:
$filter('filter')(myArray, {'id':73})
ou dans votre HTML
{{ myArray | filter : {'id':73} }}
Que diriez-vous de JavaScript simple? Plus d'informations sur Array.prototype.filter()
.
var myArray = [{'id': '73', 'name': 'john'}, {'id': '45', 'name': 'Jass'}]
var item73 = myArray.filter(function(item) {
return item.id === '73';
})[0];
// even nicer with ES6 arrow functions:
// var item73 = myArray.filter(i => i.id === '73')[0];
console.log(item73); // {"id": "73", "name": "john"}
Pour une réponse complète de M B
_, si vous souhaitez accéder à un attribut spécifique de cet objet déjà filtré du tableau dans votre code HTML, vous devrez procéder comme suit:
{{ (myArray | filter : {'id':73})[0].name }}
Donc, dans ce cas, il imprimera john
dans le code HTML.
Cordialement!
La solution qui fonctionne pour moi est la suivante
$filter('filter')(data, {'id':10})