ngOptions “suivi par” expression
Je suis en train d'utiliser le "suivi par" expression pour les sélections de pistes par id dans un tableau d'objets. Cependant, je n'arrive pas à le faire fonctionner comme je pense que cela fonctionne.
//ids from server
$scope.serverDTO = ['1','2','3'];
//composed objects from the ID set
$scope.composedData = [{id:1,name:"test"},{id:2,name:"test"},{id:3,name:"test"}];
<!-- select box -->
<select ng-model="serverDTO" ng-options="item as item.name for item in composedData track by item.id"></select>
Sur la base de la la documentation je pensais que les options de la directive sur la charge peut voir que le serverDTO a la 'piste' id de 1, 2, et 3, et ceux qui ont pré-sélectionné. Une fois que l'utilisateur modifie la sélection j'aurais besoin de faire quelque chose comme cela pour retourner un tableau pour le serveur-
//recreate proper DTO [1,2,3];
$scope.serverDTO = $scope.serverDTO.map(function(val){
return val.id;
});
Suis-je loin sur la façon dont cela est censé fonctionner?
- ng-options="item par item.nom de l'élément dans la composedData piste par élément.id"> <--- a travaillé comme un charme pour moi, merci
InformationsquelleAutor thebringking | 2014-04-30
Vous devez vous connecter pour publier un commentaire.
track by
aide Angulaire en interne avec le tableau de tri pour autant que je sais. La valeur des options est définie par le premier argument (dans votre casitem
). Si vous voulez qu'il soit par id, alors vous devriez utiliseritem.id as item.name for item in items
"piste" est très utile lorsque en ng-options de tableau d'objets et de modèle que vous utilisez l'objet également. mais vous ne voulez pas suivre les options par la référence de l'objet dans le modèle. À l'aide de "suivi par" vous point que vous avez suivi les options de champ de modèle.
dans votre cas avec "suivi par" $champ d'application.serverDTO doit être comme {id:1,nom:"test"}