2017-02-02 2 views
0

Я новичок в angularjs. У меня есть некоторые проблемы с получением значения текстового поля. И он возвращает только пустую строку, что я думаю, потому что я объявляю каждую модель равной «". Вот мой код:Значение текстового поля возвращается пустым в angularjs

HTML

<form name="account" ng-submit="update_account(account.$submitted && account.$valid)" novalidate> 
     <input required placeholder="{{placeholderForName}}" name="name" ng-model="name" type="text"> 
     <input required placeholder="{{placeholderForUname}}" name="uname" ng-model="uname" type="text"> 
     <input required placeholder="{{placeholderForPassw}}" name="passw" ng-model="passw" type="password"> 
     <button type="submit">Save!</button> 
</form> 

JS

$scope.name = ""; 
$scope.uname = ""; 
$scope.passw = ""; 

$scope.account_update = function(isValid){ 
    if(isValid){ 

     $http.post('query?action=tnoucca_etadpu',{ 
      'name': $scope.name, 
      'uname': $scope.uname, 
      'passw': $scope.passw 
     }) 
     .then(function(response){ 

      alert(response.data); // alerts empty string 

     }) 
     .catch(function(response){ 
      $scope.showToast("SYS_ERROR: " + response.data); 
     }); 

    } 
}; 

PHP

if ($action == "tnoucca_etadpu") { 

    $data = json_decode(file_get_contents("php://input")); 

    $name = $data->name; 
    $uname = $data->uname; 
    $pw = $data->passw; 

    echo $name; 
} 

ответ

1

Неправильное имя функции в ng-submit="update_update(account.$submitted && account.$valid)" вместо $scope.account_update

см пример plnkr here

Else ничего плохого с угловым кодом.

В дополнение вы можете использовать: if($scope.account.$valid){} вместо if(isValid){} и не нужно передавать никакое значение.

Смежные вопросы