2012-04-26 64 views
0

我的目标是生成一个可排序元素列表,这些元素将用knockout进行管理。但由于某种原因,我创建的observableArray将始终为空。我感觉好像我在这里的东西非常明显......Knockout JS:observableArray始终保持为空

<script type="text/javascript"> 
//var initialData = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model)); 
//console.log(initialData); 

var test = [{ Position: 1 }, 
      { Position: 2 }, 
      { Position: 3 }, 
      { Position: 4 }, 
      { Position: 5 }]; 

var viewModel = {}; 
    viewModel.Offers = ko.observableArray(test); 

    viewModel.addOffer = function() { 
     this.Offers.push({ Position : 5}); 
     console.log(this); 
    }; 

$(function() { 
    ko.applyBindings(viewModel, document.body); 

    $("#sortable").sortable().disableSelection(); 
}); 

JSFiddle of the problem

回答

3

您需要在单引号包裹模板名称:

<ul id="sortable" 
    data-bind="template: {name: 'offerTemplate', foreach: Offers}"> 

这里工作JSFiddle