Die ng-model
Bindung bewertet ihren Ausdruck im aktuellen Bereich. Da ng-repeat
einen untergeordneten Bereich erstellt, bedeutet das, dass ng-model
auf dem untergeordneten Bereich nach einer Eigenschaft mit dem Namen value
sucht. In Ihrem Beispiel würden wir erwarten, dass es nach der val
-Eigenschaft auf dem übergeordneten Element Bereich sucht, der Alias zu t
ist.
Dies ist beabsichtigt und kann in Ihrem Fall umgangen werden, indem Sie im Ausdruck auf den übergeordneten Bereich t
verweisen.
Working demo
-Code (Bekanntmachung über das Eingangselement der Bindung geändert hat):
<section ng-repeat="t in test">
<div ng-repeat="(key,value) in t">
<div>{{key}}</div>
<input type="text" ng-model="t[key]"/>
</div>
</section>
Wie Sie eine Betaversion von Angular 1.3 verwenden, das ein Fehler sein kann.
Wenn kein '.' Wenn in ng-model das Modell im Bereich zugewiesen wird (dh Text wird in das Eingabefeld eingegeben), erstellt es eine Schattenvariable im untergeordneten Bereich (ng-repeat erstellt den untergeordneten Bereich), bei der es sich um eine Kopie der Variablen handelt im übergeordneten Bereich - breaking Zwei-Wege-Bindung. Das ist Absicht - kann aber viel Verwirrung stiften. Array-Notation (Element []) ist die Ausnahme. – pixelbits