2016-06-28 11 views
2

Ich möchte ein Attribut eines datengebundenen Objekts dynamisch basierend auf dem ng-repeat-Objekt aufrufen. Ich habe ein einfaches Setup erstellt, kann das jemand lösen, wenn es so lösbar ist?AngularJS dynamische Datenbindung in ng-Wiederholung

Die Eingabe sollte den Wert von "person.item" erhalten. Zum Beispiel: person.id -> 100

http://jsfiddle.net/q7gs3njj/

html

<div ng-app ng-controller="TestController"> 
    <div ng-repeat="item in list"> 
     <label>{{ item }}:</label> 
     <input type="text"/> 
    </div> 
    {{list}} 
</div> 

javascript

function TestController($scope) { 
    $scope.list = [ 'id', 'name', 'gender' ]; 

    $person = { id:'100', name:'John', age:'22', gender:'Male' }; 

} 

Vielen Dank!

Antwort

4

Natürlich nur Artikel als Index verwenden:

<div ng-app ng-controller="TestController"> 
    <div ng-repeat="item in list"> 
     <label>{{ item }}:</label> 
     <input type="text" ng-model="person[item]"/> 
    </div> 
    {{list}} 
</div> 

Und die Person im Rahmen sein muss:

function TestController($scope) { 
    $scope.list = [ 'id', 'name', 'gender' ]; 
    $scope.person = { id:'100', name:'John', age:'22', gender:'Male' }; 
} 
+0

Danke, das den Trick! Versuchte das vorher, aber vergaß, meine Person dem Bereich hinzuzufügen –