javascript - 如何将可观察数组中的默认值绑定(bind)到下拉列表?

标签 javascript json knockout.js

我有一个下拉列表和绑定(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/

相关文章:

javascript - 如何通过嵌入将父指令属性值传递到子指令范围?

javascript - 无法在客户端编辑json文件

java - 选择 JSON Spark-Json 数据集中不存在的字段

jquery - 覆盖点击绑定(bind)

javascript - 设置输入字段的值不会影响 Safari 中的虚拟键盘

javascript - 变量声明是否提升到 if 范围 block 的顶部?

php json-schema - fatal error : Class not found

javascript - KnockoutJS 使用 Bindig 更改 View

javascript - 用于加载的弹出窗口在 knockout 中不起作用

javascript - Vue.js - 如何在数组对象上实现计算属性?