【发布时间】:2022-01-07 01:22:53
【问题描述】:
我正在创建一个自定义指令以在某些条件下隐藏元素,但它没有按照我在谷歌上搜索到的指令工作。
其他一切正常,但元素不影响显示属性
指令的使用:
<div manAuthorized [permission]="'permission-string'" class="col-2 data-object-link">
实际指令:
@Directive({
selector: '[manAuthorized]'
})
export class AuthorizedDirective implements OnInit {
@Input() permission: string;
private userObservable: Observable<UserAuthorizations>;
private currentUser: any;
constructor(private elementRef: ElementRef, private configService: ConfigService, private currentUserService: CurrentUserService) {
this.userObservable = this.currentUserService.getCurrentUser();
}
ngOnInit(): void {
this.userObservable.subscribe((user) => {
this.currentUser = user;
if (!this.authorized()) {
this.elementRef.nativeElement.display = 'none';
}
});
}
private authorized() {
return true;
}
}
【问题讨论】:
-
在我看来,更好的方法是在这里使用 viewcontainerref.clear() 一个很好的例子netbasal.com/…
-
另一个显示替代方法的帖子:stackoverflow.com/questions/43517660/…
标签: angular