Non, il est impossible de lier une clé à une entrée.
La chose la plus proche que j'ai trouvé que vous pouvez faire est d'abuser de la propriété $index
de ngRepeat et le lier à l'entrée. Vous ne pouvez pas modifier les clés pour les valeurs existantes, mais vous pouvez modifier la valeur affichée et créer de nouvelles paires clé-valeur. Je ne recommande nullement cela comme une solution, je voulais juste partager le hackery qui s'est ensuivi quand j'étudiais cette question.
jsFiddle: http://jsfiddle.net/DanielBank/v6tFG/
JavaScript:
function ctrl($scope){
$scope.obj = {
'0': 'a',
'1': 'b',
'2': 'c',
'George': 'Clooney',
};
}
HTML:
<div ng-app>
<div ng-controller="ctrl">
<div ng-repeat="value in obj">
<input type="text" ng-model="$index"/>
<input type="text" ng-model="obj[$index]"/>
<input type="text" ng-model="value"/>
</div>
{{obj}}
</div>
</div>
cette méthode que je connais très bien, merci – user2167582
Il a travaillé, sauf si la validation a eu lieu. Et si au lieu de 'type =" text "' nous avons 'type =" url "'? – raisercostin