Ich habe eine einseitige Anwendung mit angularJS. Ich habe in meinem Controller ein Benutzerobjekt wie folgt definiert:ng-Modell nicht meine Objektwerte aktualisieren
this.user = {
'name':'Robert',
'age':'30'
}
ich ein Formular gemacht, diese Informationen mit denen Benutzer-Informationen auf meiner Seite so wie diese vorbelegt zu aktualisieren:
<form name="userForm" ng-submit="userForm.$valid && pageCtrl.userForm(user)" novalidate>
<label for="name">Name *</label>
<input type="text" name="name" ng-model='pageCtrl.user.name' class="form-control" required/>
<label for="age">Age *</label>
<input type="text" name="age" ng-model='pageCtrl.user.age' class="form-control" required/>
<span ng-if='!userForm.$valid' class="error">Invalid form</span>
<input type="submit" value="Save my informations" class="btn btn-success"/>
</form>
Mein Problem ist, Folgendes: In der Kopfzeile der Seite wird der Benutzername angezeigt ({{pageCtrl.user.name}}). Wenn der Benutzer das Formular bearbeitet, indem er seinen Namen ändert, wird dieser aktualisiert, bevor das Formular gespeichert wird. Ich würde gerne auf die Formularübergabe warten, um den Benutzernamen aktualisiert zu sehen. Aber ich möchte immer noch mein Formular mit den Benutzerinformationen gefüllt bekommen.
Haben Sie eine Idee, wie das geht?
Danke von vorab
Nur pageCtrl.user.name um so etwas wie pageCtrl.user.saved_name ändern und Aktualisieren Sie pageCtrl.user.saved_name, nachdem die Übermittlung erfolgreich war. –
in der Kopfzeile verwenden Sie so etwas wie pageCtrl.updatedUser.name und setzen Sie innerhalb des Controllers und nach dem Formular absenden pageCtrl.updatedUser = pageCtrl.user – Vanojx1
Sie können dies erreichen mit ** ng-if ** auch. Verwenden Sie den booleschen Wert, um zu überprüfen, ob das Formular gesendet wurde oder nicht, und zeigen Sie dann den Benutzernamen in der Kopfzeile an. –