Я использую пользовательскую директиву, чтобы показать / скрыть div
import {
Directive,
TemplateRef,
ViewContainerRef,
Input,
OnInit
} from '@angular/core';
import { LocalStorageConstants } from 'src/app/core/constants/local-storage.constants';
@Directive({
selector: '[isAdminRole]'
})
export class AuthDirective implements OnInit {
condition: boolean;
@Input() set isAdminRole(condition: boolean) {
this.condition = condition;
}
constructor(
private templateRef: TemplateRef<any>,
private viewContainer: ViewContainerRef
) {}
ngOnInit() {
const privilegeRole = localStorage.getItem(
LocalStorageConstants.PRIVILEGE_ROLE
);
setTimeout(() => {
if (privilegeRole === 'ADMIN' && this.condition) {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
})
}
}
<div *isAdminRole="true">Hi</div>
<div *isAdminRole="true">Bye</div>
, но я передаю истину или ложь отсюда, что работает так, как я ожидаю, но я хочу передать строку как ADMIN
так что я могу иметь одну проверку, а не многократную идею о том, как это сделать