我使用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
我正在寻找类似于以下内容的内容,其中user是来自父范围的内容。
$stateProvider
.state('about', {
url: '/about',
template: '<about user="user"></about>'
})
.state('blog', {
url: '/blog',
template: '<blog user="user"></blog>'
})
知道如何做到这一点?
答案 0 :(得分:1)
在控制器中,您可以将用户分配给$ rootScope,如$rootScope.user = sth
,然后您可以为每个状态URL添加控制器以使用户获得$scope.user= $rootScope.user
,或者将rootScope用户传递为参数。
答案 1 :(得分:0)
你需要在你的控制器中使用$ rootscope
$rootScope.user = sth;
你可以得到像这样的用户
$scope.user= $rootScope.user;