我有仪表板,我是超级管理员。我创建用户个人资料,在那里我可以看到我的所有个人资料数据现在,我有所有用户的表,我想打开,如果需要,编辑某些用户的用户配置文件。 这是用于登录用户的呼叫用户配置文件()的html代码
<a href="#" class="btn btn-primary btn-block btn-sm" ui-sref="user-profile/:userID">{{'USER_PROFILE'| translate}}</a>
这里是ctrl,我称之为状态参数
.controller('userProfileCtrl', ['$scope', '$stateParams', '$state', '$http','userProfileFactory',
function ($scope, $stateParams, $state, $http, userProfileFactory) {
$scope.authentication = authService.authentication;
$scope.userID = $scope.authentication.userID;
$stateParams.userID = $scope.userID;
$scope.user = userProfileFactory.get({user: $stateParams.userID});
$scope.user.$promise.then(function (data){
console.log(data.id);
return data;
});
现在我想在表格中选择一些用户并打开他的个人资料
<tr ng-repeat="user in users|filter:f" such-href="user-profile/{{user.id}}">
使用此ctrl调用一些用户个人资料
$http.get(serviceBase + 'users/'+ $stateParams.userID +'/aaaa/').success (function(data){
$scope.media = data.media;
});
这是ui-state
.state('user-profile/:userID', {
url: '/user-profile/:userID',
templateUrl: 'aaaa/aaa/aaaae/user-profile.html',
controller: 'aaaaCtrl'
})
问题是,无论何时打开用户个人资料,我都会在个人资料中获取数据(超级管理员数据)。
答案 0 :(得分:0)
我为user_id设置了$ rootScope,以供全局使用。现在,当您启动应用程序时,您将获得已登录的用户。
$scope.authentication = authService.authentication;
$rootScope.user_id = $scope.authentication.userID;
$scope.user = userProfileFactory.get({user: $stateParams.userID});
$scope.user.$promise.then(function (data){
return data;
});
现在在html中使用它。
such-href="user-profile/{{user_id}}.
现在您已登录用户。
要让管理员像我们之前那样打开用户个人资料,而是在工厂中使用:USERID。
<tr ng-repeat="user in users|filter:f" such-href="user-profile/{{user.id}}">