所以我在我的应用中使用ui-Router
来传递$stateParams
并在控制器中以或多或少的方式使用它们。重点是,我传递的其中一些$stateParams
包含敏感信息,如员工ID。有没有办法将它们隐藏在网址中?我在这里看到了一些关于params的答案,但我并不是100%确定这是那些答案正在解决的问题。
所以,为了清楚起见,我正在谈论在这个网址中传递的信息:
.state('detail', {
url: '/detail/:employeeid/:employeename/:employeeteam',
templateUrl: 'templates/EmployeeReport.html',
controller: 'ReportController'
})
我想隐藏employeeid
,employeename
和employeeteam
。
谢谢!
答案 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
}
})
您的控制器代码可以包含employeeid
,employeename
,employeeteam
作为$scope
变量的值,
$scope.idVal = 'id';
$scope.nameVal = 'name';
$scope.teamVal = 'team';
您的HTML将如下,
<a ui-sref="detail({
employeeid:idVal,
employeename: nameVal,
employeeteam: teamVal
})"> Details state </a>