ui-select2 没有从代码中输入想要的值

ui-select2 does not put the wanted value from code

我有几个 select 看起来像这样:

                <div class="row">
                <div class="col-lg-4">
                    <label class="control-label" for="ModelSelect">Model </label>
                    <select ng-disabled="markedDic['make']!=true" class="form-control col-md-2" id="ModelSelect"
                            name="model" ui-select2
                            ng-model="carDetails.model">
                        <option ng-if="!carDetails.model" value="">[SELECT]</option>
                        <option ng-repeat="(model, value) in modelsDic" value="{{ model }}">{{ model}}</option>
                    </select>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-4">
                    <label class="control-label" for="VolumeSelect">Engine </label>
                    <select ng-disabled="markedDic['model'] != true" class="form-control col-md-2" id="VolumeSelect"
                            name="volume" ui-select2
                            ng-model="carDetails.volume">
                        <option ng-if="!carDetails.volume" value="">[SELECT]</option>
                        <option ng-repeat="(volume, value) in volumesDic" value="{{ volume }}">{{ volume }}</option>
                    </select>
                </div>
            </div>

如您所见,在每个 select 中,ng-disabled 都依赖于 markedDic[] 第一个选项遵循相同的模式

 <option ng-if="!carDetails.volume" value="">[SELECT]</option>

刚加载表单时,一切正常,默认值为 [SELECT],然后其余值为其他值。 但是当我改变 javascript 例如

carDetails.volume = "";

它使 select 中的 selected 值为 "" 但仍然让 [SELECT] 成为列表中的一个选项。 虽然我的意思是 [SELECT] 将是在我更改 js 代码后显示为 selected 值的选项。 我做错了什么?

里面ng-if检查not null和undefined可以解决问题。试试这个,因为 !"" 会 return 真实值。

ng-if="carDetails.model !== null && "carDetails.model !== undefined"
ng-if="carDetails.volume !== null && "carDetails.volume !== undefined"