当前位置: 首页 > 面试题库 >

AngularJS:显示加载HTML,直到加载数据

卢承弼
2023-03-14
问题内容

在数据完成加载之前,如何使AngularJS显示加载微调框?

如果我的控制器是$scope.items = [{name: "One"}]静态设置的,并且填充了AJAX加载器$scope.items[0]['lateLoader'] = "Hello",我希望微调器显示直到AJAX加载完成,然后使用检索到的数据填充绑定范围。

<ul ng-repeat="item in items">
  <li>
    <p>Always present: {{item.name}}</p>
    <p>Loads later: <span ng-bind="item.lateLoader"><i class="icon icon-refresh icon-spin"></i></span></p>
  </li>
</ul>

此代码立即填充绑定范围,并且如果item.lateLoader为空,则微调框将被替换为空。

我应该如何干净地做这件事?


问题答案:

我会根据其他答案创建一个自定义指令,但是这是没有指令的情况下如何实现的,这可能是在进入更复杂的功能之前学习的好主意。

  1. 使用setTimeout模拟ajax调用
  2. 加载图标已预加载,并且在加载数据时被隐藏。只是一个简单的ng-hide指令。
  3. 在我的示例中没有加载图像,只是一些文本被隐藏了(很明显,您的html将具有正确的css引用)。

演示:http:
//plnkr.co/edit/4XZJqnIpie0ucMNN6egy?p =
preview

视图:

<ul >
  <li ng-repeat="item in items">
    <p>Always present: {{item.name}}</p>
    <p>Loads later: {{item.lateLoader}} <i ng-hide="item.lateLoader"  class="icon icon-refresh icon-spin">loading image i don't have</i></p>
  </li>
</ul>

控制器:

app.controller('MainCtrl', function($scope) {
  $scope.name = 'World';
  $scope.items = [{name: "One"}];
  setTimeout(function() {
    $scope.$apply(function() {
     $scope.items[0].lateLoader = 'i just loaded';  
    });
  }, 1000);
});


 类似资料:
  • 问题内容: 我想向用户显示一个加载图标,直到页面元素完全加载为止。如何使用javascript做到这一点,而我想使用javascript而不是jquery做到这一点? 这是一个链接,谷歌是怎么做到的?在onload事件或类似事件上触发某些功能..我知道它会以这种方式或任何其他方式完成?还是有一些事件吗? 更新 我使用显示属性做了一些操作,我隐藏了body元素,但是body标签的onload更改了它

  • 问题内容: 我的网站上有一个版块,在进行一些密集的通话时加载速度很慢。 知道如何div在页面准备时显示类似于“加载”的内容,然后在一切准备就绪时消失吗? 问题答案: 我需要这个,经过一番研究,我想到了这个(需要jQuery): 首先,在标签之后添加以下代码: 然后将div和图片的样式类添加到CSS: 然后,将此JavaScript添加到您的页面中(当然,最好在页面结尾处,在结束

  • 问题内容: 您好朋友,我想在特定的div加载数据之前向Ajax加载器显示,但问题是数据在同一页面上动态传输,但是我的脚本从另一个文件调用数据, 请参见下面的代码 脚本 的HTML 它的工作正常,但我想在同一页面中加载数据,请帮助我 提前致谢 .... 编辑 我想说明之前加载数据装载到 问题答案: 您可以尝试使用以下html- 和脚本-

  • 本文向大家介绍jQuery Ajax 加载数据时异步显示加载动画,包括了jQuery Ajax 加载数据时异步显示加载动画的使用技巧和注意事项,需要的朋友参考一下  ajax加载后台数据就不说的那么细了。 看下面代码首先前台上放置代码 在js脚本文件中首先把这个图片动画隐藏 代码如下 然后异步ajax提交请求代码如下 ..................... 注意: async: true, 当

  • ap.showLoading(OPTION | content) 显示加载提示。可直接传入一个字符串作为 OPTION.content 参数。 OPTION 参数说明 名称 类型 必填 描述 content String 否 loading 的文字提示 delay Number 否 延迟显示,单位 ms,默认 0。如果在此时间之前调用了 ap.hideLoading 则不会显示 代码示例 <scr

  • Since 8.0 showLoading 显示全局大菊花 使用方法 AlipayJSBridge.call('showLoading', { text: '加载中', }); 代码演示 显示/隐藏全局loading框 <h1>点击以下按钮看不同效果</h1> <p>注意安卓下显示loading后,会覆盖整个界面,所以请使用系统回退键关闭loading</p> <a href="javasc