2012-08-07 62 views
0

下面的代码片段 - 导致一个空的列表框。任何人都可以告诉我做错了什么?Knockoutjs 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> 

作品是的jsfiddle - 而不是在浏览器(S)

回答

3

你需要调用ko.applyBindings后您的DOM已准备就绪。你可以通过将该脚本块移动到页面底部或者像jQuery的ready函数那样调用它。

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

相关问题