我正在尝试使用knockout.js来填充和管理一个<select/>
框。我希望初始值为空。
但是,我在任何时候都无法强制托管值为空,更不用说一开始了。
例如,考虑this fiddle
HTML:
<select data-bind="options: myOptions, value: myValue"></select> aka
<span data-bind="text: myValue"></span>
<div>
<button data-bind="click: setMyValue(null)">clear the selection</button>
<button data-bind="click: setMyValue('one')">select "one"</button>
<button data-bind="click: setMyValue('four')">select "four"</button>
</div>
<ul data-bind="foreach: log">
<li>message: <span data-bind="text: message"></span></li>
</ul>
JS:
function Model() {
var self = this;
self.myOptions = ['one', 'two', 'three', 'four'];
self.myValue = ko.observable();
self.setMyValue = function (val) {
return function(){
this.log.push({
message: "ok, trying to set value as " + val
});
self.myValue(val);
};
};
self.log = ko.observableArray([]);
}
var model = new Model();
ko.applyBindings(model);
select "one"
和select "four"
按钮通过强制更新myValue()
来更改选择。但是,清除选择按钮不起作用。myValue(null)
和which is what I thought was the proper way to do it未清除所选内容。
我做错了什么?
发布于 2013-03-19 00:08:16
您需要optionsCaption绑定集。
<select data-bind="options: myOptions, value: myValue, optionsCaption: 'select...'"></select>
https://stackoverflow.com/questions/15481380
复制相似问题