我有一个简单的knockout.js应用程序:
查看方式:
<select data-bind="options: allDocumentTypes , optionsCaption: 'Choose ...', optionsValue: 'id', optionsText: 'name', selectedOptions: selectedDocument"></select>
<span data-bind="click: cl">CLEAR VALUE!</span>
和这个简单ViewModel:
function documentType(id, name){
this.id = id;
this.name = name;
}
var viewModel = {
allDocumentTypes: ko.observableArray([]),
selectedDocument: ko.observable(''),
cl: function(){
viewModel.selectedDocument('');
}
};
/* load data */
viewModel.allDocumentTypes.push(new documentType(1,'Test 1'));
viewModel.allDocumentTypes.push(new documentType(2,'Test 2'));
ko.applyBindings(viewModel);
我希望,在我点击span“CLEAR VALUE!"后,在select中将选中选项“choose...",但它没有发生。viewModel中的值被设置为“”(空字符串),这是正确的,但用户仍然在select中看到旧值。
有什么办法吗?
感谢您的帮助:)
3条答案
按热度按时间pdtvr36n1#
您必须将绑定类型更改为“value”,而不是“selectedOptions”。下一步是在cl函数中设置viewModel.selectedDocument:
qacovj5a2#
在某些情况下,将可观察值设置为
null
将不起作用,例如:下面是
HTML
部分:您不能通过以下方式重置选择框:
代之以这样写:
dced5bon3#
这是一个html