2013-05-23 2 views
0

Возможно ли, и как я могу пополнить данные на входы на веб-странице после получения этих данных с помощью ajax?AngularJS. Как пополнить входы данными?

Когда я нажимаю кнопку «получить», я получаю данные с помощью ajax (get function) и помещаю его в $ scope.data моего контроллера. Но на веб-странице вы по-прежнему видите Nicolas Cage в качестве значений по умолчанию. Как я могу принудительно перечитать данные и повторно заполнить входы после функции «получить»?

Моя веб-страница:

<div ng-controller="MyController"> 
    <input type="text" ng-model="data.firstname" required> 
    <input type='text' ng-model="data.lastname" required> 

    <form ng-submit="update()"><input type="submit" value="update"></form> 
    <form ng-submit="get()"><input type="submit" value="get"></form> 
</div> 

Мои ЯШ:

function MyController($scope) { 
    // default data and structure 
    $scope.data = { 
    "firstname" : "Nicolas", 
    "lastname" : "Cage" 
    }; 

    $scope.get = function() { 
    $.ajax({ 
     url: "/php/get_data.php?", 
     type: "POST", 
     timeout: 10000, // 10 seconds for getting result, otherwise error. 
     error:function() { alert("Temporary error. Please try again...");}, 
     complete: function(){ $.unblockUI();}, 
     beforeSend: function(){ $.blockUI()}, 
     success: function(data){ 
      json_answer = eval('(' + data + ')'); 
      if (json_answer){ 
       $scope.data = json_answer; 
      } 
     } 
    }); 
    }; 

    $scope.update = function() { 
    $.ajax({ 
     url: "/php/update_data.php?", 
     type: "POST", 
     data: $scope.data, 
     timeout: 10000, // 10 seconds for getting result, otherwise error. 
     error:function() { alert("Temporary error. Please try again...");}, 
     complete: function(){ $.unblockUI();}, 
     beforeSend: function(){ $.blockUI()}, 
     success: function(data){ } 
    }); 
    }; 

}

+0

пожалуйста, не используйте $ .ajax в угловом мире угловой обеспечивает равноценный $ http, который обеспечивает все функции prov с помощью $ .ajax –

ответ

0

Попробуйте это:

$scope.$apply(function() { 
    $scope.data = json_answer; 
}); 
+0

спасибо. работ) –

+0

Добро пожаловать :) – karaxuna

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