(KnockoutJS)如何重置select语句

时间:2017-05-31 16:37:21

标签: knockout.js

我有选择由KnockoutJS填充的选项

HTML的相关部分:

<label>Gender:</label> 
<select data-bind="options: gender, value: selectedGender, optionsText: 'gender'"></select>

app.js的相关部分:

this.gender = ko.observableArray([{gender: '', value: ''},{gender: 'F', value: 'female'},{gender: 'M', value: 'male'}]);
this.selectedGender = ko.observable();

kn.constructorEnd(this);

var self = this;
this.selectedGenderVal = ko.computed(function () { 
    return self.selectedGender() && self.selectedGender().value; 
})

然后我在点击事件上添加了数据绑定到我的模态关闭图标。所有可观察的数据都被清除,除了上面的选择,我试图清除这一点:

self.selectedGender("");

为什么不将它设置为空值?

1 个答案:

答案 0 :(得分:1)

您的选择控件设置时没有“selectedValue”绑定,因此默认情况下整个选项对象将存储在“selectedGender”可观察对象中。因此,当您尝试选择空字符串值时,select控件不知道如何将其转换为数组中的某个选项对象。

如果添加optionsValue: 'gender'绑定,则它知道使用性别可观察对象中的字符串值比较值,而不是将整个对象相互比较。