angular.js, nicht Bearbeiten können dynamisch erstellte input-Felder

Verwenden angular.js ich habe eine dynamische Liste der Formular-Felder, die ich anzeigen möchten, die dem Benutzer für die Bearbeitung (und später Einreichung):

var app = angular.module('app', []);
app.controller('Ctrl', function($scope) {
    $scope.fields = {
        foo: "foo",
        bar: "bar",
        baz: "baz"
    };
});

Und HTML:

<div ng-app="app" ng-controller="Ctrl">
    <table>
        <th>key</th>
        <th>value</th>
        <th>fields[key]</th>
        <tr ng-repeat="(key,value) in fields">
            <td>{{key}}:</td>
            <td><input type="text" ng-model="value"/></td>
            <td><input type="text" ng-model="fields[key]"/></td>
        </tr>
    </table>
</div>

Sehen diese Geige. Für einem Grund ich nicht verstehen, den text-Eingabe-Felder sind nicht editierbar. Ich habe versucht, zwei verschiedene Möglichkeiten, wie oben gesehen: value und fields[key]. value ist nicht bearbeitbar, und fields[key] ermöglichen eine Tastendruck und dann verwischt. Was mache ich falsch? Danke.

  • es ist sichtbar, aber nach jedem Tastendruck das Textfeld Fokus verlieren, so dass Sie haben, klicken Sie auf ihn erneut, um einen anderen char
  • Und das passiert, weil Sie ganze Vorlage neu gerendert wird nach jeder änderung in jedem der Modelle. Und nach Vorlage neu gerendert, es gibt derzeit keine Möglichkeit zu wissen, welcher Eingang den Fokus. So erstellen Sie auf diese Weise und Sie können schreiben wollen, die Richtlinie zu halten, konzentrieren sich auf ausgewählte Eingabe.
  • Danke @SET, das macht Total Sinn, Sie sollten machen, dass eine Antwort!
  • mögliche Duplikate von Schwierigkeiten mit ng-model, ng-repeat und-Eingänge
  • Danke @Mark Rajcok, meine Frage ist definitiv ein Teil des einen, und es sind einige gute Erklärungen gibt.
InformationsquelleAutor Steve Kehlet | 2013-02-27
Schreibe einen Kommentar