0

我正在使用 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>'
    })

知道如何做到这一点吗?

4

2 回答 2

1

在控制器中,您可以将用户分配给$rootScope,like $rootScope.user = sth,然后您可以为每个状态url添加控制器以获取用户like $scope.user= $rootScope.user,或者将rootScope用户作为参数传递。

于 2016-08-04T04:48:18.153 回答
0

您需要像这样在控制器中使用 $rootscope

$rootScope.user = sth;

你可以得到这样的用户

$scope.user= $rootScope.user;
于 2016-08-04T06:37:41.403 回答