日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Angular之ngx-permissions的常见使用情况

發布時間:2025/3/8 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Angular之ngx-permissions的常见使用情况 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Angular之ngx-permissions的常見使用情況

權限驗證

首先需要請求驗證并通過,然后獲得權限,最后檢查權限。

這種方式需要在Angular 4.3.2 版本以上才會有效工作。

一般來說我們的程序有2個守衛,一個是信息驗證,一個是權限守衛,并且一定是先請求信息驗證,然后才是權限驗證。

例如下面的路由配置:

let routes = [{ path: '', canActivate: [AuthGuard],children: [{path: 'component', component: ComponentName, canActivate: [NgxPermissionsGuard],data: {permissions: {only: ['ADMIN', 'MODERATOR'],redirectTo: 'another-route'}}}]} ]

守衛過程為,必須先通過 AuthGuard 和 NgxPermissionsGuard 后才能進入下一個路由,上面代碼中為當用戶為ADMIN或者MODERATOR時才能通過。

注意:確保在身份驗證后衛鏈接的權限請求

canActivate() {return authLogin().then((obj) => {// or load here if you dont need second request// this.permissions.service.loadPermissions(obj.permissions)return this.authPermissions.getPermissions('url');}).then((permissions) => {this.permissions.service.loadPermissions(permissions)) }

保存權限

當用戶刷新頁面的所有數據都將丟失,包括該用戶的權限。有很多的保存權限的方式,但是取決于你的業務需求。但最常見的是將它們保存到 localStorage 的。然后從 localStorage 的應用程序啟動時加載它們。

例如下面的代碼:

login() {return authLogin().then((obj) => {// Save permissions to localStorage.localStorage.setItem('permissions', JSON.stringify(obj.permissions));this.permissions.service.loadPermissions(obj.permissions); }) }

禁用元素

通過服務禁用

this.ngxPermissionsConfigurationService.addPermissionStrategy('disable', (templateRef: TemplateRef) => {this.renderer2.setAttribute(tF.elementRef.nativeElement.nextSibling, 'disabled', 'true');// 下面的也可以,但是不推薦。templateRef.elementRef.nativeElement.nextSibling.setAttribute('disabled', true) });this.ngxPermissionsConfigurationService.addPermissionStrategy('enable', (templateRef: TemplateRef) => {this.renderer2.removeAttribute(tF.elementRef.nativeElement.nextSibling, 'disabled'); });

通過ngxPermissions指令

使用 ngxPermissions指令 配合authorisedStrategy策略。

<button *ngxPermissionsOnly="'ADMIN'; authorisedStrategy: 'enable'; unauthorisedStrategy: 'disable'"><div>Admin will only see this</div> </button>

也可以通過ngxPermissions指令配合服務來使用:

html

<button *ngxPermissionsOnly="'ADMIN'"><div>This button will be disabled if user has no permissions or role 'admin'</div> </button>

component

this.ngxPermissionsConfigurationService.setDefaultOnAuthorizedStrategy('enable');orthis.ngxPermissionsConfigurationService.setDefaultOnUnauthorizedStrategy('disable')

總結

以上是生活随笔為你收集整理的Angular之ngx-permissions的常见使用情况的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。