Я использую angular-ui/ui-router и имею директивы/компоненты с областью выделения, определенные для отображения состояния при изменении состояния.
$stateProvider
.state('about', {
url: '/about',
template: '<about></about>'
})
.state('blog', {
url: '/blog',
template: '<blog></blog>'
})
Моя главная страница - это директива, которая загружает пользователя со всеми разрешениями в своем контроллере
app.directive('main', function() {
return {
...
template: "<div><header></header><div ui-view></div></div>",
controller: [..., function(...) {
$scope.user = // $http load user
}]
);
Когда вы переходите в разные состояния, я хочу, чтобы пользователь был передан всем директивам/компонентам ui-view. Однако я не могу найти хороший способ реализовать это без resolve
, которое загрузило бы пользователя при каждом изменении состояния или с помощью $rootScope
Я ищу что-то похожее на следующее, где пользователь является одним из родительской области.
$stateProvider
.state('about', {
url: '/about',
template: '<about user="user"></about>'
})
.state('blog', {
url: '/blog',
template: '<blog user="user"></blog>'
})
Любая идея, как это можно сделать?
в контроллере вы можете назначить пользователю $ rootScope, например $rootScope.user = sth
, тогда вы можете ли добавить контроллер для каждого URL- $scope.user= $rootScope.user
штата, чтобы получить пользователя как $scope.user= $rootScope.user
или передать rootScope пользователь как параметр.
вам нужно использовать $ rootcope в вашем контроллере, как это
$rootScope.user = sth;
и вы можете получить такого пользователя
$scope.user= $rootScope.user;
$http
быть реорганизован в службу?