2016-06-22 8 views
2

그래서 내 앱에서 ui-Router을 사용하여 $stateParams을 전달하고 내 컨트롤러에서 다소 영리한 방법으로 사용합니다. 요점은, 내가 통과 한 이들 중 $stateParams 중 일부는 직원 ID와 같은 중요한 정보를 포함한다는 것입니다. URL에 숨길 수있는 방법이 있습니까? params에 대한 답을 여기에서 보았습니다. 그러나이 질문에 대한 답변이 100 % 확실하지는 않습니다.

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

내가 employeeid, employeenameemployeeteam을 숨기려 :

그래서 그냥이 같은 URL에 전달 된 정보에 대해 이야기하고, 명확해야합니다.

감사합니다.

+0

엔티티 ID는 중요한 정보가 아닙니다. 민감한 정보는 사회 보장 번호 (예 : 사용자 비밀번호 등)를 사용합니다. 엔티티 ID는 데이터베이스의 엔티티 ID입니다. –

+0

처음에이 정보가있는 경우 액세스 권한이 있어야합니다. 자바 스크립트가 그것에 대해 알고 있다면, 그것은 서버에서 왔음에 틀림 없다. –

답변

3

예. 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> 
관련 문제