Frage

Mit dem AngularJS Rahmen, wie habe ich die " Senden " Taste beide die aktuelle Entität aktualisieren sowie die Anker-ID löschen - ich möchte grundsätzlich Schnellfeuer Einträge hinzufügen, aber es stellt sich immer meine Erstellformular in ein Bearbeitungsformular.

Hier ist meine aktuelle div, die nicht funktionieren, es ist wie es das ignorieren $anchor.task=null ...

Beachten Sie, dass die " New " Taste funktioniert gut!

<div>
    Description: <input name="task.desc" ng-required><br>
    <a href="#" ng-action="task.$save(); $anchor.task=null">Save</a>
    <input type="button" value="Add New" ng-action="$anchor.task=null">
</div>
War es hilfreich?

Lösung

Wenn Sie schnell haben wollen fügt hier ist das, was Sie ändern müssen

Ich nehme an, Sie haben: ng-entity = "task = Aufgabe" in Ihrem Code. Sie müssen sich ändern, dass zu ng-entity = „Aufgabe“ dies die Erklärung ändert, so dass es nicht mit dem Anker verbunden ist. Siehe http://docs.getangular.com/Ng-entity für weitere Details. Dies bedeutet auch, dass Sie manuell die Aufgabeninstanz in ng-init instanziiert.

Dann in dem Save-Anker Sie benötigen eine Task-Dokument mit den Vorgaben des Task-Objekts instanziiert: Aufgabe (Task)

als Sie brauchen, es zu speichern. Aufgabe (Task) $ save ()

Schließlich wollen Sie das Formular löschen, so müssen Sie die Aufgabe Objekt leer zurückzustellen. Dies kann nur geschehen, nachdem das Objekt speichert, so dass Sie einen Rückruf an den $ save () Methode enthalten müssen: Aufgabe (Task) $ sparen. ({: $ Root.task = {};})

$ root bezieht sich auf Stammbereich als der Umfang innerhalb des Rückrufs nicht die gleichen wie der Umfang ist, wo Aufgabe deklariert wird.

<div ng-entity="Task" ng-init="task={}">
        Description: <input name="task.desc" ng-required><br>
        <a href="#" ng-action="Task(task).$save({: $root.task={} })">Save</a>
</div>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top