我正在尝试使用primeng阻止UI组件来阻止一个面板。该示例使用p-panel作为包装器,我已经实现了它:
<p-blockUI [blocked]="blockUI" [target]="pnl"></p-blockUI>
<p-panel #pnl [showHeader]="false">
<div [class]="myPanelClass" *ngIf="data?.IsVisible">
<p-card [style]="{'width': '100%', 'height': '365px', 'margin-top': '10px'}">
<app-component></app-component>
</p-card>
</div>
</p-panel>
问题在于,由于我的现有“ div”周围添加了p-panel,因此由于p-panel的样式,所有东西都无法使用。是否还有另一个组件可以像简单的“ div”那样使用?
答案 0 :(得分:0)
我认为唯一的方法是创建自己的实现BlockableUI
接口的组件:
import { BlockableUI } from 'primeng/primeng';
@Component({
selector: 'blockable-div',
template: `
<div [ngStyle]="style" [ngClass]="class" ><ng-content></ng-content></div>
`
})
export class BlockableDiv implements BlockableUI {
@Input() style: any;
@Input() class: any;
constructor(private el: ElementRef) {
}
getBlockableElement(): HTMLElement {
return this.el.nativeElement.children[0];
}
}
答案 1 :(得分:0)
Primeng自定义BlockableUI
目前仅以此方式工作
<p-blockUI [target]="pnl" [blocked]="blockedPanel">
<i class="pi pi-lock" style="font-size: 3rem"></i>
</p-blockUI>
<p-panel #pnl header="Panel Header">
Content of Panel
</p-panel>
无论您要阻止的内容。在p-panel下使用它,并相应地使用p-panel ID。
这在公关下有效
在"primeng": "^9.1.3"
下的official site中提到了