Javascript 如何为<;设置占位符;选择>;对于未定义、null和空字符串?

Javascript 如何为<;设置占位符;选择>;对于未定义、null和空字符串?,javascript,angular,select,angular-forms,Javascript,Angular,Select,Angular Forms,我尝试用下拉输入编写一个库。当模型的值为空字符串或null或未定义时,select输入应显示占位符。问题是,它只对其中一个有效 <select [formControl]="formControl" value="" title="{{placeholder}}"> <option disabled hidden [value]="null">{{placeholder}}</option> <option *ngFor="let key

我尝试用下拉输入编写一个库。当模型的值为空字符串或null或未定义时,select输入应显示占位符。问题是,它只对其中一个有效

<select [formControl]="formControl" value="" title="{{placeholder}}">
    <option disabled hidden [value]="null">{{placeholder}}</option>
    <option *ngFor="let key of keys()" value="{{dict[key]}}">{{dict[key]}}</option>
</select>

{{占位符}}
{{dict[key]}
我尝试为占位符添加多个选项。这在Chrome和Firefox中有效,但Safari和IE11显示了三次占位符

<select [formControl]="formControl" value="" title="{{placeholder}}">
    <option disabled hidden [value]="null">{{placeholder}}</option>
    <option disabled hidden [value]="undefined">{{placeholder}}</option>
    <option disabled hidden [value]="''">{{placeholder}}</option>
    <option *ngFor="let key of keys()" value="{{dict[key]}}">{{dict[key]}}</option>
</select>

{{占位符}}
{{占位符}}
{{占位符}}
{{dict[key]}

除了已定义的选项外,在所有其他情况下是否有任何方法显示特定值?

我想到的第一件事是:为什么有3个空值?如果只支持
空字符串,则问题可能会更简单。客户端不知道未定义或空字符串。或者这是一个专门为您创建的网站(例如,生成SQL字符串…)@Halcyon:如果您以编程方式设置空值,您的建议将无效。@Emmanuel Delay:客户不会,但使用我的库的程序员会:)@FranziskusKarsunke我不明白这是一个问题。只是不要设置
null
值。
只支持字符串值,因此将其设置为
“null”
并期望发生特殊情况是没有意义的。