Javascript 击倒JS:observableArray始终保持为空

Javascript 击倒JS:observableArray始终保持为空,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我的目标是生成一个可排序元素的列表,这些元素将通过knockout进行管理。然而,由于一些我不知道的原因,我创建的observableArray将始终保持为空。我觉得我好像错过了一些非常明显的东西 <script type="text/javascript"> //var initialData = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model)); //con

我的目标是生成一个可排序元素的列表,这些元素将通过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();
});

//var initialData=@Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model));
//console.log(initialData);
var test=[{Position:1},
{位置:2},
{位置:3},
{位置:4},
{位置:5}];
var viewModel={};
viewModel.Offers=ko.observearray(测试);
viewModel.addOffer=函数(){
this.Offers.push({Position:5});
console.log(this);
};
$(函数(){
应用绑定(viewModel、document.body);
$(“#可排序”).sortable().disableSelection();
});


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

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

工作开始了。

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

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