【发布时间】:2021-08-20 04:04:55
【问题描述】:
我正在使用 PrimeNG 控件。我正在通过指令在各种输入控件上设置禁用属性,其中一些控件是 p-dropdown、p-listbox 和 p-calendar PrimeNG 控件。基本的输入、textarea 和 select 控件可以正常工作,但 PrimeNG 控件已禁用定义为 @Input,如下所示:
private _disabled: boolean;
@Input() get disabled(): boolean {
return this._disabled;
};
指令的代码sn-p如下:
/*
** find all inputs and disable them.
*/
disableElements( el: ElementRef ): void {
const controls = el.nativeElement.querySelectorAll( 'input, select, textarea, p-dropdown, p-listbox, p-checkbox' );
controls.forEach( (elmt: any) => {
this.disableElement( elmt );
});
}
/*
** disable an input element.
*/
disableElement( elmt: any ): void {
if( elmt.localName.substr(0,2) === 'p-' ) {
this._renderer.setProperty(elmt, 'disabled', 'true');
} else {
if(!elmt.hasAttribute('disabled')) {
this._renderer.setAttribute(elmt, 'disabled', 'true');
}
}
}
那么,如何在给定 ElementRef.nativeElement 的情况下禁用 PrimeNG 3rd 方控件?我在想,在给定元素引用的情况下,我需要一种方法来实现禁用的 @Input 属性。
【问题讨论】:
-
抱歉,您有什么问题?
-
那么,如何在给定 ElementRef.nativeElement 的情况下禁用 PrimeNG 3rd 方控件?谢谢
-
您现在可以禁用任何输入吗.. 或收到任何错误
-
我可以禁用输入、选择和文本区域。我无法禁用 p-dropdown、p-listbox 和 p-calendar。
标签: angular typescript dom primeng