我试图推迟加载主 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/