У меня есть директива hasPermission, которая используется внутри компонента.Функция этой директивы заключается в проверке разрешения, если нет, затем отключите кнопку, но в тот момент, когда я делаю какие-либо изменения в полях формы, например, добавляем некоторый текст, он снова включает кнопку, и это происходит из-за свойства [disabled], которое ищет формы нетронутыми /неверный статус.
Как мне это сделать?
Я хочу сначала проверить наличие разрешений, если они есть, тогда на снимке появляется только этот нетронутый / недействительный.Пожалуйста, руководство.
Если я получу статус изначальной / недействительной внутренней директивы этой формы, я думаю, что мы сможем справиться с ней, но как ее получить внутри, я попробовал некоторые решения с использованием DoCheck / Host и т. Д. Ни один из них не дал мне ссылку на форму внутри Директивы.
Я не хочу использовать nativeElement (пока кто-нибудь не скажет, что это единственный способ:))
Пример кода
import {
Directive,
OnInit
} from '@angular/core';
import {
NgForm
} from '@angular/forms';
@Directive({
selector: '[haspermission]'
})
export class HaspermissionDirective implements OnInit {
constructor() {
....
}
ngOnInit() {
this.someService.getCurrentUser().subscribe(response => {
this.store(response);
});
}
store(data: IUser) {
this.roles = JSON.parse(data.role);
//.....doing some logic to calculate permissisons
var hasPerm = this.roles.find(o => (o.RoleCode in permConfig.permission));
if (!hasPerm) {
this.element.nativeElement.disabled = true;
}
}
}