Knockout JS:observableArray始终为空

时间:2012-04-26 05:42:37

标签: javascript jquery knockout.js

我的目标是生成一个可以使用knockout管理的可排序元素列表。然而,由于某些原因,我不知道,我创建的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

1 个答案:

答案 0 :(得分:3)

您需要将模板名称换成单引号:

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

以下是JSFiddle