javascript - AngularJS - 如何在数组长度为零时显示警报并隐藏默认行为?

标签 javascript css angularjs

我正在使用 angular,我正在显示一个加载内容后消失的小加载圆圈。那个圆圈只是我在第一次加载页面时从我的 html 调用的 CSS 类,我是这样做的:

实际上圆圈必须有类:圆圈内的.circle.loader ...

<div ng-hide="lineItems.length" class="circle">
 <div class="loader"></div>
</div>

正如您在下面看到的,有一个带有 if 的 promise ,表示如果 linesItems.length 为零,则显示 myModal。一切正常,但加载圆圈仍然出现,我需要做的是完全删除 .circle.loader 一旦 if 已达到。

.then(function(lines) {
  $scope.lineItems = lines;
  if ($scope.lineItems.length === 0) {
   myModal.show();
   console.log('I AMN EMPTY');
  }else {
   loaderAlert.hide();
  }
 }

有人说我必须使用 $scope 变量,但我不知道该怎么做,我是 Angular 的新手,还有其他方法吗?

最佳答案

当你开始你的 promise 时,设置一个标志来说明你当前正在加载。然后当加载完成时,将标志设置为 false。将其与 ng-class 或 ng-if 一起使用,使圆的外观有条件。

function doStuff(){
    $scope.loadingIsHappening = true;
    myService.getStuff().then(function(){

       // your processing here

    }).finally(function(){
        $scope.loadingIsHappening = false;
    });
}

HTML:

 <!-- ng-if removes from DOM, while ng-hide modifies CSS display to none-->
<div ng-if="loadingIsHappening == true" class="circle">
    <div class="loader"></div>
</div>

关于javascript - AngularJS - 如何在数组长度为零时显示警报并隐藏默认行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27534987/

相关文章:

javascript - 菜单选项卡未出现在仪表板中

html - 如何在css中舍入小数位

javascript - 如何使用 AngularJS 将新项目推送到对象数组中?

javascript - jQuery UI 自动完成 - 引用 jQuery UI 主题样式表时的自定义样式

javascript - AngularJS 数据与 select 标签绑定(bind)

javascript - setTimeout 中的函数不会修改 $scope 变量/CSS 属性

javascript - 我如何使用 Javascript 或 Flash 获取用户文件的哈希值?

javascript - 与 DOM 元素的数据绑定(bind)如何工作?

javascript - bootstrap 3 上主体的自定义滚动条

javascript - 在其他选择中禁用选项