1
컨트롤러가로드되기 전에 서버 측에서 값을 가져 오려고합니다. 나는 이것을 달성하기 위해 해결자를 사용하고 있습니다.컨트롤러를로드하기 전에 해결되지 않았습니다.
'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를 인쇄하려고하면 가져온 값은 내가 다음과 같은 방법에 routeConfig 확장 모든 컨트롤러에 표시 할 필요가 있기 때문이다.
.controller('UserController', ['$scope', function ($scope) {
console.log($scope.activeUser.id);
.....
};
는 여기에 다음과 같은 오류가 점점 오전 : 형식 오류 : 정의되지 않은 재산 'ID를'읽을 수 없습니다.
왜 컨트롤러를로드하기 전에 값이 확인되지 않습니까?
$ scope.activeEnvironment가 할당되지 않았습니다 ... – pixelbits
죄송합니다. 코드를 편집했습니다. 내가 코드를 공유 할 수 없기 때문에 코드를 다시 작성해야했습니다. – Sanja