【发布时间】:2019-03-12 18:12:09
【问题描述】:
我是 AngularJs 的新手,最初是在页面加载时,即。当 loadResponseData() 正在处理时,我需要显示进度 div,并且在 ajax 调用完成后需要显示带有响应数据的成功 div。但没有显示成功 loadResponseData() 完成后。有没有办法在完成 ajax 调用之前显示进度条,并且应该在收到来自 ajax 调用的响应后显示成功 div。对不起我的英语,请保存我的一天。
<%
PayBean payBean = (PayBean) session.getAttribute("payData");
%>
<div ng-controller="payCtrl" ng-init="loadResponseData()" id="loadResponseData">
<div class="row">
<div class="col-12 col-md-12 col-sm-12 col-lg-8">
<form id="response">
<div class="row row-space" ng-if="status=='success'">
// load response data in elements
</div>
<div class="row row-space" ng-if="status=='progress'">
// Progress bar takes place
</div>
</form>
</div>
<div>
payCtrl中的方法:
$scope.loadResponseData = function() {
$http.post(contextRoot + getResponseData(function(data) {
var status = sessionStorage.getItem("status");
$scope.status = status ;
sessionStorage.setItem('data', JSON.stringify(data));
});
};
【问题讨论】:
-
status是什么?你在哪里声明的? -
它在 angularjs 控制器的 loadResponseData 方法中声明
-
因为您使用的是
ng-if指令,它会创建新的范围,因此status不可见。尝试使用 controllerAs 语法或使用ng-hide或ng-show指令。 -
Hadi.. 我最初可以获取状态为进度.. 但是在 ajax 方法 loadResponseData 完成后页面不刷新
标签: java angularjs spring-mvc