我正在使用 MVC4 填充复杂的视图模型。我这样填充
var job = @Html.Raw(Json.Encode(Model.job));
var customer = @Html.Raw(Json.Encode(Model.customer));
var listTasks = @Html.Raw(Json.Encode(Model.Tasks));
var estimateMaterials = @Html.Raw(Json.Encode(Model.estimateMaterials));
var estimate = @Html.Raw(Json.Encode(Model.estimate));
var JobPost = {
customer: customer,
job: job,
listTasks: ko.observableArray(listTasks),
estimateMaterials: ko.observableArray(estimateMaterials),
estimate: ko.observable()
};
ko.applyBindings(JobPost, document.getElementById("update-job-form"));
现在,对象estimateMaterials
被填充到一行。对于那一行,我想像这样添加Remove
到每一行和Add button
表格的底部
然后我看到了,rniemeyer在轻松添加/删除行方面非常出色。
分叉的小提琴是:http: //jsfiddle.net/codovations/tDV9k/
在那有一个像这样的片段
self.addLine = function() { self.lines.push(new CartLine()) };
self.removeLine = function(line) { self.lines.remove(line) };
我想对我的可观察数组实现类似的东西
estimateMaterials: ko.observableArray(estimateMaterials)
是否可以添加这样的方法?
PS:我通过使用jquery分别克隆行/删除最近的tr来添加/删除。我正在寻找一种更清洁的方式。
更新:
我在这里面临的主要问题是如何访问observableArray