2017-03-22 2 views
0

unten meine Seite anzeigenng-Modell arbeitet nicht mit ng-Wert in AngularJS

<form name="form"> 
    <label>Name</label> 
    <input name="name" type="text" ng-model='user.name' ng-value='emp.name' required /> 
    <span ng-show="form.name.$touched && form.name.$invalid">Name is required</span> 
    <button ng-disabled="form.name.$touched && form.name.$invalid" ng-click='formUpdate()'>Update</button> 
</form> 

Dies ist mein Controller

$scope.formUpdate = function() { 
    $scope.status = false; 
    $http({ 
    method : 'POST', 
    url : 'model/update.php', 
    data : $scope.user , 
    headers : {'Content-Type': 'application/x-www-form-urlencoded'}   

    }).then(function mySuccess(response) { 
    $scope.update = response.data; 
    console.log(response.data); 
    }, function myError(response) { 
    $scope.update = response.statusText; 

    }); 
}; 

Wenn ich Daten verwende: $scope.user in Mein HTTP-Aufruf Ich erhalte leere Werte auf der Konsole, aber wenn ich Daten verwendete: $scope.emp, dann bekomme ich nie aktualisierte Werte von Eingabefeldern, sondern alte Werte von Eingabefeldern.

+0

Was ist der Zweck, wenn ths 'ng-value', was das Ergebnis zu erwarten ist? – Mistalis

+0

Ich implementiere Update-Logik mit Hilfe von Formular, ng-Wert hebt alte Werte aus der Tabelle, und wenn der Benutzer seinen Feldwert aktualisieren will, dann sollten neue Werte in DB –

+0

widergespiegelt Das ist, was ich vermutete, siehe [** meine Antwort **] (http://stackoverflow.com/a/42952719/4927984). – Mistalis

Antwort

0

versuchen Sie diesen Code;

$scope.formUpdate = function(){ 
    $scope.status = false; 
    $scope.$applyAsync(); 

    $http({ 
    method : 'POST', 
    url : 'model/update.php', 
    data : $scope.user , 
    headers : {'Content-Type': 'application/x-www-form-urlencoded'}   

    }).then(function mySuccess(response) { 
    $scope.update = response.data; 
    $scope.$applyAsync(); 
    console.log(response.data); 
    }, function myError(response) { 
    $scope.update = response.statusText; 
    $scope.$applyAsync(); 
    }); 

    }; 
2

ng-value bindet den gegebenen Ausdruck auf den Wert des Elements. Wenn Sie Ihre Frage verstehen, versuchen Sie, den Eingabewert auf emp.name zu initialisieren.

sollten Sie Ihre Eingabe ändern:

<input type="text" ng-model='user.name' ng-init='user.name = emp.name' required /> 

ng-init docs

+0

Danke Mistalis, gegebene Lösung funktioniert nicht für mich –

+0

@wasimbeg Könnten Sie erklären, was "* nicht funktioniert *"? Ich kann dir nicht mehr mit mehr Präzision helfen ... – Mistalis

Verwandte Themen