AngularJS ui-Router - 在状态之间导航时隐藏$ stateParams

时间:2016-06-22 08:23:15

标签: angularjs angular-ui-router url-routing state

所以我在我的应用中使用ui-Router来传递$stateParams并在控制器中以或多或少的方式使用它们。重点是,我传递的其中一些$stateParams包含敏感信息,如员工ID。有没有办法将它们隐藏在网址中?我在这里看到了一些关于params的答案,但我并不是100%确定这是那些答案正在解决的问题。

所以,为了清楚起见,我正在谈论在这个网址中传递的信息:

.state('detail', {
    url: '/detail/:employeeid/:employeename/:employeeteam',
    templateUrl: 'templates/EmployeeReport.html',
    controller: 'ReportController'
})

我想隐藏employeeidemployeenameemployeeteam

谢谢!

1 个答案:

答案 0 :(得分:4)

是。您可以使用params

文档 - here

因此,您可以按照以下方式修改state

.state('detail', {
    url: '/detail',
    templateUrl: 'templates/EmployeeReport.html',
    controller: 'ReportController',
    params: { 
        employeeid: null,   // can initialise to default value
        employeename: null, // can initialise to default value
        employeeteam: null  // can initialise to default value
    }
})

您的控制器代码可以包含employeeidemployeenameemployeeteam作为$scope变量的值,

$scope.idVal = 'id';
$scope.nameVal = 'name';
$scope.teamVal = 'team';

您的HTML将如下,

<a ui-sref="detail({
   employeeid:idVal,
   employeename: nameVal,
   employeeteam: teamVal
})"> Details state </a>