以下代码段 - 会产生一个空的列表框。谁能告诉我我做错了什么?
<script src="/Scripts/knockout-2.1.0.debug.js"></script>
<script type="text/javascript">
var listEditorVM = function () {
this.allItems = ko.observableArray(["Apple", "Banana", "Orange"]);
alert(this.allItems().length);
};
ko.applyBindings(new listEditorVM());
</script>
<div>List items:</div>
<select multiple="multiple" data-bind="options: allItems"></select>
Works是jsFiddle - 不在浏览器中
答案 0 :(得分:3)
您的DOM准备就绪后需要调用ko.applyBindings
。您可以通过将该脚本块移动到页面底部或使用jQuery的ready函数调用它来完成此操作。
默认情况下,jsFiddle会运行你的js代码“onload”,所以它会在你的元素出现之后发生。