angularjs - 使用 ng-controller 时延迟模板加载

标签 angularjs

我试图推迟加载主 Controller /模板 (AppController),直到从服务加载用户配置文件为止。

对于所有导航路线,我使用带有解析的 $routeProvider

.when('/edit/:editId', {
    templateUrl: 'editTemplate.html',
    controller: 'EditController' // this is a child controller of AppController
    resolve: {
         currentUser: ['svc.user', function(userSvc) { return userService.getUser(); }]
    }
// and so on..

但是对于 AppController 我正在使用

如何解析 AppController?本质上,我想要一个 userService.getUser() ,它返回一个在 AppController 实际运行之前完成执行的 promise ,但我不确定如何使用 ng-init 来做到这一点(或者如果可能的话,我认为只有表达式不 promise 可以被执行)。

感谢您的帮助/协助。

最佳答案

如视频中所示:http://egghead.io/video/angularjs-resolve/

你应该尝试:

.when('/edit/:editId', {
  templateUrl: 'editTemplate.html',
  controller: 'EditController' // this is a child controller of AppController
  resolve: {
     currentUser: ['svc.user', function(userSvc) { return userService.getUser(); }]
     app: function ($q) {
                var defer = $q.defer();
                defer.resolve();
                return defer.promise;
     }
}

关于angularjs - 使用 ng-controller 时延迟模板加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15633686/

相关文章:

angularjs - 使用自己的范围动态加载 Controller

javascript - AngularJS 最初用 true 填充数组,模型中每个一个

javascript - Angularjs 将 $scope 分配给预先存在的 MVC 模型数据

javascript - 如何使用 AngularJS 在单击正文内的任意位置时显示弹出窗口?

angularjs - 在 $watch 中设置变量有时会失败?

AngularJS [typeahead] 在 onFocus 上重新打开结果下拉列表

javascript - 在 Angular Directive(指令)中将事件绑定(bind)到 $(document)

javascript - ng-options 选择列表值设置为我选择的 id 并将其与 ng-model 正确绑定(bind)

angularjs - 更新到 1.2 后,带有变量的表单操作无效

javascript - AngularJs ng-repeat 尚未渲染数据 http 200 响应