我的目标是生成一个可以使用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();
});
答案 0 :(得分:3)
您需要将模板名称换成单引号:
<ul id="sortable"
data-bind="template: {name: 'offerTemplate', foreach: Offers}">
以下是JSFiddle。