我有一个下拉列表和绑定(bind)到它的数据,如下所示
HTML:
<div>
<label>Notice Type</label>
<select id="ntctype" data-bind="options: NoticeType, value: selectedNoticeType, optionsCaption:'Choose...', optionsValue:'NoticeTypeID', optionsText:'NoticeTypeDescription'"></select>
</div>
KO JS:
self.NoticeType = ko.observableArray([]);
self.selectedNoticeType = ko.observable();
$.getJSON("GetNoticeType", null, function (data) {
self.NoticeType(data);
}
);
NoticeType 数组看起来像这样 [{"NoticeTypeID":1,"NoticeTypeDescription":"关闭"},{"NoticeTypeID":2,"NoticeTypeDescription":"打开"}]
我想在绑定(bind)后将默认值设置为Close。我尝试使用 optionsAfterRender 和 ko.applybindingstoNode 但没有一个起作用。
执行此操作的干净整洁的方法是什么?
最佳答案
正如评论中提到的,您只需将默认值设置为 viewModel 中绑定(bind)的可观察对象的 value
查看模型:
function accountViewModel() {
var self = this;
self.NoticeType = ko.observableArray();
self.selectedNoticeType = ko.observable();
self.ajaxcall = function () {
self.NoticeType([{
"NoticeTypeID": 1,
"NoticeTypeDescription": "Close"
}, {
"NoticeTypeID": 2,
"NoticeTypeDescription": "Open"
}]);
self.selectedNoticeType = ko.observable(1);
}
self.ajaxcall();
}
工作 fiddle here
关于javascript - 如何将可观察数组中的默认值绑定(bind)到下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29776798/