ajax请求准备就绪后显示AngularJS ng
我正在发送请求,在我收到数组后,我需要提供答案。若数组为空,我需要显示一个代码,否则-另一个代码 现在,我的模板加载速度比请求快,所以显示“数组为空”条件的部分。如何等待请求完成ajax请求准备就绪后显示AngularJS ng,angularjs,Angularjs,我正在发送请求,在我收到数组后,我需要提供答案。若数组为空,我需要显示一个代码,否则-另一个代码 现在,我的模板加载速度比请求快,所以显示“数组为空”条件的部分。如何等待请求完成 // Template <div ng-show="!!arr.length"> // I need to check this after request is finished. <div ng-repeat="(key, val) in arr"> ... <
// Template
<div ng-show="!!arr.length"> // I need to check this after request is finished.
<div ng-repeat="(key, val) in arr">
...
</div>
</div>
<div ng-show="!!arr.length" class="ng-hide"></div>
Empty
</div>
// Controller
$scope.arr = [];
$http.get('url').then(function (response) {
if(response) $scope.arr= response;
// ng-show or ng-hide
});
//模板
//我需要在请求完成后检查这个。
...
空的
//控制器
$scope.arr=[];
$http.get('url')。然后(函数(响应){
if(response)$scope.arr=响应;
//显示还是隐藏
});
将$scope.arr
变量保留为未定义,仅在实际收到数组后定义它
然后在模板中使用此选项:
<div ng-show="arr.length > 0">
...
</div>
<div ng-show="arr.length == 0"></div>
Empty
</div>
...
空的
如果arr
未定义,则这两个条件都将无效
当然,您也可以引入一个布尔变量,一旦响应可用,如果您觉得更清楚的话,它就被设置为true
或者,可能是最好的解决方案,使用其
resolve
配置选项仅在阵列可用时切换到页面。将$scope.arr
变量保留为未定义,并且仅在实际收到阵列后定义它
然后在模板中使用此选项:
<div ng-show="arr.length > 0">
...
</div>
<div ng-show="arr.length == 0"></div>
Empty
</div>
...
空的
如果arr
未定义,则这两个条件都将无效
当然,您也可以引入一个布尔变量,一旦响应可用,如果您觉得更清楚的话,它就被设置为true
或者,可能是最好的解决方案,使用其
resolve
配置选项,仅在阵列可用时切换到页面。两个ng show
上的表达式相同。更改第二个div上的表达式,或将ng show=
更改为ng hide=
两个ng show
上的表达式相同。更改第二个div上的表达式,或从ng show=
更改为ng hide=
Super!很酷的解决方案,对我很有效。非常感谢。它对我不起作用,首先它会显示空消息,即使数组中有一些项目,之后它会显示数组项目。超级!很酷的解决方案,对我很有效。非常感谢。它对我不起作用,首先它会显示空消息,即使数组中有一些项,后来它会显示数组项。