Javascript 如何将可观察数组中的默认值绑定到下拉列表?
我有一个下拉列表和数据绑定到它如下 HTML:Javascript 如何将可观察数组中的默认值绑定到下拉列表?,javascript,json,knockout.js,Javascript,Json,Knockout.js,我有一个下拉列表和数据绑定到它如下 HTML: <div> <label>Notice Type</label> <select id="ntctype" data-bind="options: NoticeType, value: selectedNoticeType, optionsCaption:'Choose...', optionsValue:'N
<div>
<label>Notice Type</label>
<select id="ntctype" data-bind="options: NoticeType, value: selectedNoticeType, optionsCaption:'Choose...', optionsValue:'NoticeTypeID', optionsText:'NoticeTypeDescription'"></select>
</div>
self.NoticeType = ko.observableArray([]);
self.selectedNoticeType = ko.observable();
$.getJSON("GetNoticeType", null, function (data) {
self.NoticeType(data);
}
);
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();
}
NoticeType数组如下所示
[{“NoticeTypeID”:1,“NoticeTypeDescription”:“Close”},{“NoticeTypeID”:2,“NoticeTypeDescription”:“Open”}]
绑定后,我想将deafult值设置为Close。我尝试使用选项afterrender&ko.applybindingstoode,但没有一个有效
要做到这一点,干净整洁的方法是什么?如评论中所述,您只需将默认值设置为viewModel中的绑定可观察值 查看模型:
<div>
<label>Notice Type</label>
<select id="ntctype" data-bind="options: NoticeType, value: selectedNoticeType, optionsCaption:'Choose...', optionsValue:'NoticeTypeID', optionsText:'NoticeTypeDescription'"></select>
</div>
self.NoticeType = ko.observableArray([]);
self.selectedNoticeType = ko.observable();
$.getJSON("GetNoticeType", null, function (data) {
self.NoticeType(data);
}
);
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();
}
工作小提琴您只需尝试一下self。selectedNoticeType(1)应该可以工作。在这里拉小提琴。Cheerri尝试了这一点,但没有工作,因为在我的getJSONwell之后加载了可观察数组,然后执行了getJSON。将数据分配给
self.NoticeType
后,执行self.selectedNoticeType(1)
。它将在这里工作。这应该会对你有所帮助。是的,它确实有效,但不会在下拉列表中显示为默认值。我目前可以解决这个问题,但只是想知道为什么