0

我有以下微调器,

<div id="spinningSquaresG" ng-model="ajaxrequest"  ng-show="{{ajaxrequest}}">
<div id="spinningSquaresG_1" class="spinningSquaresG">
</div>
<div id="spinningSquaresG_2" class="spinningSquaresG">
</div>
<div id="spinningSquaresG_3" class="spinningSquaresG">
</div>
<div id="spinningSquaresG_4" class="spinningSquaresG">
</div>
<div id="spinningSquaresG_5" class="spinningSquaresG">
</div>
<div id="spinningSquaresG_6" class="spinningSquaresG">
</div>
<div id="spinningSquaresG_7" class="spinningSquaresG">
</div>
<div id="spinningSquaresG_8" class="spinningSquaresG">
</div>
</div> 
</div>

在我的控制器中,我设置$scope.ajaxrequest = false;了微调器正确隐藏(如果我设置它 ajaxrequest=true 它会出现,所以我认为这没有问题)。在我的控制器内部,我有一个发出 ajax 请求的函数,我想在请求开始时显示微调器,并在请求完成时隐藏它。所以我有:

$( document ).ajaxStart(function() {
              $scope.ajaxrequest = true;
              console.log($scope.ajaxrequest);
        });

$( document ).ajaxStop(function() {
              $scope.ajaxrequest = false;
              console.log($scope.ajaxrequest);
        });

正如我从控制台中看到的,ajaxrequest 值在请求之前和之后正确更改。问题是微调器没有出现。我错过了什么?

4

2 回答 2

2

尝试ng-show="ajaxrequest"代替ng-show="{{ajaxrequest}}". ng-show已经接受了一个表达式,所以大括号不是必需的。

于 2014-08-22T19:51:17.847 回答
2

您正在使用 JQuery 来触发更改,ajaxrequest因此角度不知道任何事情都发生了变化。您可以scope.$apply()在更改 ajaxrequest 后调用以通知 Angular 更改,但如果没有 JQuery 这样做会更好。

以拦截器的文档为例:https ://docs.angularjs.org/api/ng/service/$http

于 2014-08-22T19:53:12.217 回答