Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何在下拉列表中将标签设置为空字符串?_Angular_Typescript_Primeng_Multi Select - Fatal编程技术网

Angular 如何在下拉列表中将标签设置为空字符串?

Angular 如何在下拉列表中将标签设置为空字符串?,angular,typescript,primeng,multi-select,Angular,Typescript,Primeng,Multi Select,我正在处理这个简单的多选下拉列表,我想将标签设置为nothing(空字符串)。但是,当我使用defaultLabel时,它似乎无法正常工作。有没有办法在默认情况下将标签(测试)设置为空字符串 提前多谢 这是我的密码: <p-multiselect [options]="registrationStatus" [defaultLabel]= "someText" [showHeader]="false"> </p-multiSelect> 您可

我正在处理这个简单的多选下拉列表,我想将标签设置为nothing(空字符串)。但是,当我使用defaultLabel时,它似乎无法正常工作。有没有办法在默认情况下将标签(测试)设置为空字符串

提前多谢

这是我的密码:

<p-multiselect
    [options]="registrationStatus"
    [defaultLabel]= "someText"
    [showHeader]="false">
</p-multiSelect>


您可以将空字符串设置为
defaultLabel
,并定义一个全局css类,该类将覆盖控件的默认样式并设置初始大小。如果要从特定宽度开始,也可以在样式中设置最小宽度。然后使用styleClass属性应用css类。官方文件中提到了这一点

以下是要放入应用程序全局css中的样式:

.multipleSelectSize {
  height: 30px;
  min-width: 100px;
}

.multipleSelectSize > .ui-multiselect-label-container > .ui-multiselect-label {
  height: 27px;
}
以及应用样式的html模板:

<p-multiSelect [styleClass]="'multipleSelectSize'" [options]="registrationStatus" [defaultLabel]= "someText" [showHeader]="false"></p-multiSelect>


这里还有一个相对简单的解决方法:将默认标签设置为所需长度的字符串,例如“default”。然后使用MultiSelectComponent上提供的[style]属性,在没有选定项目时有条件地应用
color:transparent
。这样,您就不必适当地设置高度或宽度

<p-multiSelect [options]="registrationStatus" [defaultLabel]="someText"
    [(ngModel)]="selectedItems" [showHeader]="false"
    [style]="getDefaultLabelStyle()">
</p-multiSelect>

someText: string = 'Default';
selectedItems: Array<Object> = [ ];

getDefaultLabelStyle() {
    return (this.selectedItems.length === 0) ?
        { color: 'transparent' } : null;
}

someText:string='Default';
selectedItems:Array=[];
getDefaultLabelStyle(){
返回(this.selectedItems.length==0)?
{color:'透明'}:空;
}

完整堆栈闪电战。

它似乎适用于不可破坏的空格:
someText:string=“”
。看。@ConnorsFan即使它有效,但我认为它似乎不是一个好的解决方案。你的工作没有按预期进行。你只是想增加一个高度,当你把鼠标放在多选下拉菜单上时,你会看到一个灰色的背景。我已经用一个解决方案更新了答案,删除了灰色区域。现在有点复杂了。如果您对此不满意,您将不得不询问组件的创建者如何以更简单的方式进行操作。