您的位置:首页 > Web前端 > AngularJS

angular中采用ajax交互后台servlet问题

2017-05-16 21:20 211 查看
angular中采用ajax交互后台冲突。

前台js代码请求片段

$.ajax({
url:"../servlet/QuestionnireServlet",
type:"post",
async:false,//是否异步
dataType:'json',
data:{"method":"findAllQuestionnires"},
success:function (data){
$scope.questionnires = angular.fromJson(data);
},
error:function (error){

}
});

后台片段

String method = request.getParameter("method");
if(method!=null){
ArrayList<?> dd = questionnireServiceBean.queryAllQuestionnires(Questionnire.class);
if(dd!=null){
String jonString = JSONArray.fromObject(dd).toString();
writer.write(jonString);
}
}

查询的时候,到后台查到了数据,但是在前台$scope.questionnires = angular.fromJson(data);赋值之后,页面采用ng-repeat并没有显示出来。查看$scope里面的$scope.questionnires是大小为查出来的数组大小,并且有值。Table里面始终渲染不出来,后来换了一种方式解决了。

采用了angular的$http请求后台servlet,查出的数据能够进行正常渲染。这也许是angularjs 和 jquery的ajax之间的冲突。

更正后代码

angular.module('questionnireApp',[])
.factory('QestionnireService', ['$resource','$http',function($resource,$http) 
{
//var URL = $resource('/questionnairePrj/servlet/QuestionnireServlet', {});
var questionnireService = {};

questionnireService.findAllQuestionnires=function(success,error)//传入的两个方法回掉方法
{
$http({
method : 'post',
url : "/questionnairePrj/servlet/QuestionnireServlet",
params : {"method":"findAllQuestionnires"},
}).success(success).error(error);
};

return questionnireService;

}]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  angular servlet ajax
相关文章推荐