我尝试使用“ng-template”仅显示标签,但默认情况下仍显示复选框。如何更改此默认行为?
这里是使用的代码
ng-template
......
`
<p-multiSelect [options]="conditionList" formControlName="condition" defaultLabel="Select Conditions"
[showToggleAll]="false" scrollHeight="300px">
<ng-template let-condition pTemplate="item">
<div>{{condition.label}}</div>
</ng-template>
</p-multiSelect>`
您需要自定义 MulitiSelect 样式来克服 View Envapsulation。可以通过三种方式完成:
p-multiselect
.p-multiselect-panel
.p-multiselect-items
.p-multiselect-item
.p-checkbox {
display: none;
}
::ng-deep {
p-multiselect
.p-multiselect-panel
.p-multiselect-items
.p-multiselect-item
.p-checkbox {
display: none;
}
}
@Component({
...
encapsulation: ViewEncapsulation.None
})
1:创建两个新的 theme.scss 条目:
.disable-check .p-multiselect-panel .p-multiselect-header .p-checkbox {
display:none;
}
.disable-check .p-multiselect-panel .p-multiselect-items .p-checkbox {
visibility:hidden;
}
2:为 p-multiselect 元素添加禁用检查类:
<p-multiSelect class="disable-check" [group]="true" optionLabel="item"
optionValue="valor" [options]="ItemOptions" >