0

我的目标是生成一个可排序元素的列表,这些元素将通过淘汰赛进行管理。但是,出于某种我不知道的原因,我创建的 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 的问题

4

1 回答 1

3

您需要将模板名称用单引号括起来:

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

这是工作JSFiddle

于 2012-04-26T06:12:53.397 回答