问题
actually am following a spring tutorial .. coming to Angularjs he is using .succes
var app=angular.module("MyApp",[]);
.controller("MyController",function($scope,$http){
$scope.pageProduits=null;
$http.get("http://localhost:8080/chercherProduits?mc")
.success(function(data){
$scope.pageProduits=data;
})
.error(function(err){
console.log(err);
});
});
now my problem is that success is not working and after searshing i descovered that The .success and .error methods are deprecated and have been removed from AngularJS 1.6. i have to the standard .then method instead. Can someone convert me the existing code to code with the then mothod ? i tried but i failed can anyone helps plz bcz am not familiar with javaScript ? Thank you
回答1:
Before
$http(...).success(function onSuccess(data, status, headers, config) {
// Handle success
//...
}).error(function onError(data, status, headers, config) {
// Handle error
//...
});
After
$http(...).then(function onSuccess(response) {
// Handle success
var data = response.data;
var status = response.status;
var statusText = response.statusText;
var headers = response.headers;
var config = response.config;
//...
}).catch(function onError(response) {
// Handle error
var data = response.data;
var status = response.status;
var statusText = response.statusText;
var headers = response.headers;
var config = response.config;
//...
});
For more information, see AngularJS Developer Guide - Migrating from V1.5 to V1.6
See also, Why are angular $http success/error methods deprecated? Removed from v1.6?
回答2:
use then
like this to catch the response.
make sure to use response.data
because response data comes under data
property
$http.get("http://localhost:8080/chercherProduits?mc")
.then(function(response){
$scope.pageProduits=response.data;
},function(response){
console.log(response.data);
})
use ng repeat
to show the data in row wise
<body ng-app="MyApp" ng-controller="MyController">
<div class="container">
<table class="table table-striped">
<thead>
<tr >
<th>ID</th>
<th>Désignation</th>
<th>Prix</th>
<th>Quantité</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="p in pageProduits">
<td>{{p.id}}</td>
<td>{{p.designation}}</td>
<td>{{p.prix}}</td>
<td>{{p.quantite}}</td>
</tr>
</tbody>
</table>
</div>
<script type="text/javascript" src="node_modules/angular/angular.min.js"></script> <script type="text/javascript" src="js/app.js"></script>
</body>
回答3:
The AngularJS $http
service makes a request to the server, and returns a response
.Use then
instead of success
like below:
var app=angular.module("MyApp",[]);
app.controller("MyController",function($scope,$http){
$scope.pageProduits=null;
$http.get("http://localhost:8080/chercherProduits?mc")
.then(function(data){ // function that execute on ajax success
$scope.pageProduits=data.data;
}, function error(function(err){ //function that execute on ajax error
console.log(err.statusText);
});
});
回答4:
As per angular Js official documentations. Success
and error
methods are no longer available. These methods are depreciated instead they recommend to use standard .then
method. Succces
methods return only the data
from the response but in .then
method, full response
object is returned.
var app=angular.module("MyApp",[])
.controller("MyController",function($scope,$http){
$scope.pageProduits=null;
$http.get("http://localhost:8080/chercherProduits?mc")
.then(function(response){
if(response.status === 200) {
$scope.pageProduits=response.data
}
}, function(error) {
console.log(error)
});
});
For More Info: https://docs.angularjs.org/api/ng/service/$http
来源:https://stackoverflow.com/questions/42895684/angularjs-version-1-6-change-from-success-method-to-then-method