2016-06-22 4 views
2

したがって、私のアプリでui-Routerを使用して$stateParamsを渡し、コントローラに多かれ少なかれ巧妙な方法で使用します。ポイントは、私が渡した$stateParamsの中には従業員IDのような機密情報が含まれているものがあります。 URLにそれらを隠す方法はありますか?私はparamsについてここでいくつかの答えを見ましたが、私はこれが答えが解決している問題であることを100%確信していません。

だから明確にするために、私はこのようなURLで渡された情報について話しています:

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

私はemployeeidemployeenameemployeeteamを非表示にします。

ありがとうございます!

+0

エンティティIDは機密情報ではない可能性があります。機密情報は、例えば、ユーザパスワードなどの社会保障番号を使用する。エンティティIDは、データベース内のエンティティのIDに過ぎない。 –

+0

最初にこの情報を持っていれば、その情報にアクセスできる必要がありますか? JavaScriptがそれについて知っているならば、それはサーバから来ているに違いありません。 –

答えて

3

はい。 paramsを使用できます。

ドキュメント - here

次のようにあなたがあなたのコントローラコードは、

$scope.idVal = 'id'; 
$scope.nameVal = 'name'; 
$scope.teamVal = 'team'; 
、などの employeeteam $scopeなどの変数を employeeidemployeenameの値を含めることができます

.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 
    } 
}) 
をご stateを変更することができます

HTMLは次のようになります。

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