我用Java编写了一个简单的Rest服务,请参阅下面的代码
@POST
@Path("/add/")
@Consumes("application/json")
public String addUser(@FormParam("name") String name) throws JSONException{
String val = "{user" + " : " + name +"}";
JSONObject jso = new JSONObject(val);
return jso.toString() ;
}
我试图通过工厂和控制器从Angular调用此Web服务,但它无法正常工作。请参阅下面的JavaScript代码:
var app = angular.module('myApp', ['ngResource']);
app.factory('FctStudent', function($resource){
return $resource('http://localhost:10080/ClientAngular/Api/student/add/:name',
{name : '@name'},
{'save' : {method : 'POST'}}
)
});
app.controller('SixCtrl', function($scope, FctStudent){
$scope.titre = "Controleur SixCtrl";
$scope.save = function(){
var donnees = $scope.data;
var utilisateur = donnees.user;
console.log(donnees);
$scope.resultat = FctStudent.save(utilisateur);
};
})
你可以告诉我有什么问题吗?
提前谢谢。
现在我已经使用了这段代码:
var app = angular.module('myApp', ['ngResource']);
app.factory('FctStudent', function($resource){
return $resource('http://localhost:10080/ClientAngular/Api/student/add/:name',
{name : '@name'},
{'save' : {method : 'POST'}}
);
});
app.controller('FirstCtrl', function($scope, FctStudent){
$scope.titre = "FirstCtrl";
$scope.valider = function(){
var prenom = $scope.user.firstname;
FctStudent.save()
.then(function(response) {
$scope.resultat = response;
})
};
});
在我的网络控制台中,我得到了这个:
你有什么建议吗? 谢谢大家!
答案 0 :(得分:0)
FctStudent.save
是异步请求,因此只返回promise
。您必须等待其余(asycn)请求完成才能访问其响应。请尝试以下代码。
var app = angular.module('myApp', ['ngResource']);
app.factory('FctStudent', function($resource){
return $resource('http://localhost:10080/ClientAngular/Api/student/add/:name',
{name : '@name'},
{'save' : {method : 'POST'}}
)
});
app.controller('SixCtrl', function($scope, FctStudent){
$scope.titre = "Controleur SixCtrl";
$scope.save = function(){
var donnees = $scope.data;
var utilisateur = donnees.user;
console.log(donnees);
FctStudent.save(utilisateur)
.then(function (response) {
$scope.resultat = response;
}
};
})