Knockoutjs ObservableArray

时间:2012-08-07 12:30:07

标签: knockout.js ko.observablearray

以下代码段 - 会产生一个空的列表框。谁能告诉我我做错了什么?

<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 - 不在浏览器中

1 个答案:

答案 0 :(得分:3)

您的DOM准备就绪后需要调用ko.applyBindings。您可以通过将该脚本块移动到页面底部或使用jQuery的ready函数调用它来完成此操作。

默认情况下,jsFiddle会运行你的js代码“onload”,所以它会在你的元素出现之后发生。