sind neu in angular2 und ich habe eine Sidebar, Ich mag würdeÜberprüfung von Berechtigungen in angular2
Benutzerberechtigungen zeigen und verstecken basierend aufDas ist, was ich
<ul class="sidebar-menu">
<li class="header">MAIN NAVIGATION</li>
<li [hidden] = "canAccess('dashboard')">
<a routerLinkActive="active" routerLink="/dashboard">
<i class="fa fa-dashboard"></i>
<span>Dashboard</span>
</a>
</li>
</ul>
Dann in der Dashboard-Komponente getan habe
canAccess(permission:string){
return this._dashboardService.canUser(permission)
.subscribe(res=>{
return res
},
err=>{
return false;
}
)
}
Dann wird die _dashboardservice
//http client attaches the access token stored in local storage
canUser(permission:string):Observable<boolean>{ //returns true or fals
return this._httpclient.post(this.url,permission)
.map(this.extractData)
}
Das geht über zu einer Endlosschleife der HTTP-Post
immer Ausführung Was ich
oben Programm in Endlosschleife, weil es die Überprüfung hält Wert geändert wird oder nicht. Dies ist ein Merkmal von Winkel 2, um die Änderungserkennung zu überprüfen. Also benutze keine Funktion in [hidden] oder * ngIf. Statt dessen können Sie eine Funktion in ngOnInit() Ihrer Komponente aufrufen. und speichern Sie seine Antwort in einem booleschen und diesem booleschen Wert, den Sie im HTML-Teil verwenden können, indem Sie entweder * ngIf oder [hidden] verwenden. Wenn Sie möchten, kann ich Antwort mit etwas Code hinzufügen, um diesen Prozess zu erklären. –