'permission' 找不到管道?
'permission' pipe could not be found?
关注 step by step dev 我正在尝试 隐藏未经授权的按钮 .
这是按钮的代码,在phoneBook.component.html中:
<button *ngIf="'Pages.Tenant.PhoneBook.CreatePerson' | permission" class="btn btn-primary" (click)="createPersonModal.show()"><i class="fa fa-plus"></i> {{l("CreateNewPerson" | localize)}}</button>
当我 运行 项目时,我在控制台中收到该错误:
ERROR Error: "Uncaught (in promise): Error: Template parse errors:
The pipe 'permission' could not be found ("
</div>
<div class="col-sm-6 text-right">
.......
我该如何解决这个问题?
在您的 link 的代码中,他们使用 "permission" 作为数据。
所以我认为他们犯了一个错误。他们不想在这里有一个管道,而是一个来自后面的布尔数据。
所以可能是 <div *ngIf="... || permission">
(他们的 github link 已经死了,所以不可能有干净的代码)
Custom pipes need to be created and imported into module.
管道可以这样使用:
<button *ngIf="(Pages?.Tenant?.PhoneBook?.CreatePerson' | permission).length === 0"
class="btn btn></button>
那么你的管道应该是这样的:
@Pipe({name: 'permission'})
export class PermissionPipe implements PipeTransform {
transform(value: number, exponent: string): number {
...
return ...;
}
}
以及模块中的声明:
import { LabTestService } from './lab-test/lab-test.service';
import { PermissionPipe } from './...';
@NgModule({
declarations: [
AppComponent,
PermissionPipe
],
imports: [
NgbModule.forRoot(),
BrowserModule,
FormsModule
],
...
bootstrap: [ AppComponent ]
})
export class AppModule { }
ASP.NET 零基础解决方案的 v6.7.0 中提供了管道定义。
如果您使用的是旧版本,可以查看对应版本的文档:
https://docs.aspnetzero.com/documents/zero/v6.6.0/Developing-Step-By-Step-Angular#hide-unauthorized-button
这是来自 aspnetzero/documents@bccbc7a 的差异(截断):
- *ngIf="isGranted('Pages.Tenant.PhoneBook.CreatePerson')"
+ *ngIf="'Pages.Tenant.PhoneBook.CreatePerson' | permission"
关注 step by step dev 我正在尝试 隐藏未经授权的按钮 .
这是按钮的代码,在phoneBook.component.html中:
<button *ngIf="'Pages.Tenant.PhoneBook.CreatePerson' | permission" class="btn btn-primary" (click)="createPersonModal.show()"><i class="fa fa-plus"></i> {{l("CreateNewPerson" | localize)}}</button>
当我 运行 项目时,我在控制台中收到该错误:
ERROR Error: "Uncaught (in promise): Error: Template parse errors:
The pipe 'permission' could not be found ("
</div>
<div class="col-sm-6 text-right">
.......
我该如何解决这个问题?
在您的 link 的代码中,他们使用 "permission" 作为数据。
所以我认为他们犯了一个错误。他们不想在这里有一个管道,而是一个来自后面的布尔数据。
所以可能是 <div *ngIf="... || permission">
(他们的 github link 已经死了,所以不可能有干净的代码)
Custom pipes need to be created and imported into module. 管道可以这样使用:
<button *ngIf="(Pages?.Tenant?.PhoneBook?.CreatePerson' | permission).length === 0"
class="btn btn></button>
那么你的管道应该是这样的:
@Pipe({name: 'permission'})
export class PermissionPipe implements PipeTransform {
transform(value: number, exponent: string): number {
...
return ...;
}
}
以及模块中的声明:
import { LabTestService } from './lab-test/lab-test.service';
import { PermissionPipe } from './...';
@NgModule({
declarations: [
AppComponent,
PermissionPipe
],
imports: [
NgbModule.forRoot(),
BrowserModule,
FormsModule
],
...
bootstrap: [ AppComponent ]
})
export class AppModule { }
ASP.NET 零基础解决方案的 v6.7.0 中提供了管道定义。
如果您使用的是旧版本,可以查看对应版本的文档: https://docs.aspnetzero.com/documents/zero/v6.6.0/Developing-Step-By-Step-Angular#hide-unauthorized-button
这是来自 aspnetzero/documents@bccbc7a 的差异(截断):
- *ngIf="isGranted('Pages.Tenant.PhoneBook.CreatePerson')"
+ *ngIf="'Pages.Tenant.PhoneBook.CreatePerson' | permission"