javascript - 无法与 Internet Explorer 一起使用的 Knockout 虚拟元素

标签 javascript knockout.js

如果您在 Chrome 中运行此 Fiddle,选择框会正确填充选项 A、B 和 C。但是,如果您使用 Internet Explorer(版本 8 或 9)运行它,则它不起作用。我怎样才能修复这个 fiddle 以使其与 Internet Explorer 一起工作,但仍然使用虚拟元素?

http://jsfiddle.net/jeljeljel/2tUmP/

HTML

<script type="text/html" id="template">
    <select id="type" name="type">
        <option value="">-- Choose --</option>
        <!-- ko foreach: types -->
        <option data-bind="text: $data.desc, attr: { value: $data.id }"></option>
        <!-- /ko -->
    </select>
</script>
<div id="placeholder" data-bind="template: { name: 'template' }"></div>

Javascript

function Model(){
    var self = this;
    self.types = ko.observable([]);
}
var model = new Model();
model.types().push({id: 0, desc:'A'});
model.types().push({id: 1, desc:'B'});
model.types().push({id: 2, desc:'C'});

ko.applyBindings(model);

最佳答案

这可能是 Internet Explorer 的限制。

代替虚拟元素,使用 options绑定(bind)以填充 <select>元素:

<select id="type" name="type"
    data-bind="options: types, optionsText: 'desc', optionsValue: 'id', optionsCaption: '-- Choose --'">
</select>

文档:http://knockoutjs.com/documentation/options-binding.html

关于javascript - 无法与 Internet Explorer 一起使用的 Knockout 虚拟元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16524003/

相关文章:

javascript - 如何获取JQuery颜色框的 "break out"

javascript - 将印度-阿拉伯数字转换为英文数字

javascript - 这段简短的 Javascript 代码有什么问题?

javascript - 拒绝 Angular $http promise

knockout.js - knockout 和summernote不起作用

javascript - 如何在日期类型字段中设置值

javascript - 通过右键单击、Applescript 和/或 Javascript 访问浏览器中的链接?

javascript - 卡住标题不允许点击 knockout

javascript - 将 Javascript 对象转换为 Javascript 数组

javascript - 在 MVVM modelView 中进行初始化有意义吗?