具有基本样式的Primeng BlockableUI接口组件

时间:2018-09-04 22:29:46

标签: angular primeng

我正在尝试使用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”那样使用?

2 个答案:

答案 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];
    }

}

信用至:https://github.com/primefaces/primeng/issues/2003

答案 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中提到了