【发布时间】:2022-06-19 23:30:06
【问题描述】:
我不确定如何在 Flutter 中实现指令。
我在 Angular 中有以下代码,它根据用户的角色动态创建渲染元素的指令。我想在 Fluter 中实现。如何在 Flutter 中编写代码。
指令类
import { Directive, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
import { AccountService } from '../../core/services/account.service';
@Directive({
selector: '[appHasRole]'
})
export class HasRoleDirective implements OnInit{
@Input() appHasRole: string[];
constructor(private viewContainerRef: ViewContainerRef,
private templateRef: TemplateRef<any>,
private accountService: AccountService) {}
ngOnInit(): void {
const isAuthorized = this.accountService.isAuthorized('Role', this.appHasRole);
if (!isAuthorized) {
this.viewContainerRef.clear();
} else {
this.viewContainerRef.createEmbeddedView(this.templateRef);
}
}
}
如何使用
<a *appHasRole='["SuperAdmin","Admin"]' mat-list-item routerLink="users">
View Users
</a>
【问题讨论】: