1
我想从任何控制器加载之前从服务器端获取值。我正在使用解析器来实现此目的。由于获取的值必须是可见的所有控制器我伸出routeConfig以下方式:解决未解决加载控制器之前
'use strict';
angular.module('myApp', [.....]).
config(['$routeProvider', function ($routeProvider) {
var universalResolves = {
user: function(User, $q, $rootScope) {
var deffered = $q.defer();
User.query({},
function (users) {
deffered.resolve(
$rootScope.activeUser = users[0]
)
}, function(){
deffered.reject();
}
);
return deffered.$promise;
}
};
var customRouteProvider = angular.extend({}, $routeProvider, {
when: function(path, route) {
route.resolve = (route.resolve) ? route.resolve : {};
angular.extend(route.resolve, universalResolves);
$routeProvider.when(path, route);
return this;
}
});
customRouteProvider.when('/users', {
templateUrl: 'partials/users.html',
controller: 'UserController'
});
customRouteProvider.otherwise({redirectTo: '/home'});
}]);
但是,当我尝试从我收到“未定义”控制打印activeUser。
.controller('UserController', ['$scope', function ($scope) {
console.log($scope.activeUser.id);
.....
};
在这里,我收到以下错误: 类型错误:无法读取的未定义的属性“身份证”。
为什么在加载控制器之前未解决该值?
$ scope.activeEnvironment永远不会被分配... – pixelbits 2014-12-09 11:55:25
对不起,我编辑了代码。我需要重写代码,因为我不允许分享它。 – Sanja 2014-12-09 11:58:45