首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用AngularJS $routeprovider解决功能并保持良好的加载用户体验

如何利用AngularJS $routeprovider解决功能并保持良好的加载用户体验
EN

Stack Overflow用户
提问于 2014-09-15 20:36:50
回答 1查看 871关注 0票数 0

我读过几篇关于$routeprovider解决功能的文章。主要想法来自我最喜欢的AngularJS开发者托德座右铭创建的回购。https://github.com/toddmotto/angularjs-styleguide#controllers

代码语言:javascript
复制
// avoid
function MainCtrl (SomeService) {
  var _this = this;
  // unresolved
  _this.something;
  // resolved asynchronously
  SomeService.doSomething().then(function (response) {
    _this.something = response;
  });
}
angular
  .module('app')
  .controller('MainCtrl', MainCtrl);

// recommended
function config ($routeProvider) {
  $routeProvider
  .when('/', {
    templateUrl: 'views/main.html',
    resolve: {
      // resolve here
    }
  });
}
angular
  .module('app')
  .config(config);

我非常喜欢路由在加载控制器之前首先解决所有控制器依赖关系的方式。它保持代码非常干净。但是,如果解决过程花费了大量时间,那么页面将停留在没有视觉反馈的中,直到所有加载完成为止。

在切换到使用$routeprovider解析之前,我习惯于将所有内容放在控制器中,然后创建一个异步加载视图指令。当所有$http请求都在下载数据时,指令将显示一个加载进度条。我想知道是否有一种方法来保持视觉反馈,并把所有的解决步骤,在路由提供者。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-16 12:30:56

当解析开始时,您可以连接到$routeChangeStart$routeChangeSuccess事件。您可以侦听这些事件,并可以根据事件类型显示或隐藏ajax派生器/加载消息。

再来点!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25856487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档