2016-06-22 7 views
2

Also verwende ich ui-Router in meiner App, um $stateParams zu übergeben und sie in meinen Controllern auf mehr oder weniger clevere Weise zu verwenden. Punkt ist, einige dieser $stateParams, die ich weitergeben vertrauliche Informationen, wie Mitarbeiter-IDs. Gibt es eine Möglichkeit, sie in der URL zu verstecken? Ich habe hier einige Antworten über Params gesehen, aber ich bin mir nicht 100% sicher, dass dies das Problem war, auf das sich diese Antworten bezogen.

Also nur zu klar, ich spreche von Informationen in der URL wie folgt geführt:

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

Ich möchte employeeid, employeename und employeeteam verstecken.

Danke!

+0

Entitäts-ID ist wahrscheinlich keine sensible Information. Zu den sensiblen Informationen gehören die Sozialversicherungsnummer, z. B. das Benutzerpasswort usw. Die Entitäts-ID ist nur die ID der Entität in der Datenbank. –

+0

Sicher, wenn sie diese Informationen an erster Stelle haben, müssen sie Zugang dazu haben? Wenn JavaScript davon weiß, muss es vom Server stammen. –

Antwort

3

Ja. Sie können params verwenden.

Docs - here

So können Sie Ihre state wie folgt

ändern
.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 
    } 
}) 

Ihr Controller-Code können die Werte für employeeid, employeename, employeeteam als $scope Variablen wie,

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

Ihr HTML wird wie folgt sein,

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