我在Angular 6应用程序中使用ngx-permissions。我有许多权限将在整个应用程序中使用,因此我想拥有一个包含所有权限名称的常量文件-例如:
import { Injectable } from "@angular/core";
@Injectable({
providedIn: 'root'
})
export class Permission {
public static CanViewX = 'CanViewX';
public static CanEditX = 'CanEditX';
public static CanAdministerX = 'CanAdministerX';
}
在检查打字稿中的权限时,我可以引用此Permission类:
import { Injectable } from '@angular/core';
import { NgxPermissionsService } from 'ngx-permissions';
import { Permission } from '../data/permission';
@Injectable({
providedIn: 'root'
})
export class Service {
constructor(private permissionsService: NgxPermissionsService) { }
checkPermission() {
this.permissionsService.hasPermission(Permission.CanViewX);
}
}
但是,当我检查html中的权限时,我正努力使用我的Permission类。尽管我的用户绝对拥有该权限,但从未显示第二个<p>
。硬编码权限名称可以使用,但是我想使用我的类,因为如果开发人员必须记住权限名称,我会看到输入错误和错误。
<p *ngxPermissionsOnly="['CanViewX']">This will work</p>
<p *ngxPermissionsOnly="[Permission.CanViewX]">Viewers should be able to see this, but can't</p>
有没有办法避免用html硬编码我的权限名称?
答案 0 :(得分:1)
最后,我不想对html中的权限名称进行硬编码,因此我在.ts文件中创建了一个属性,并在html中将其绑定。