我正在將數據綁定到我的html的挖空功能。從可觀察數組中刪除問題
以下是視圖模型:
var DonutViewModel = function() {
this.donuts = ko.observableArray();
//donutData = JSON.parse(donutData);
var items = $.map(donutData, function (data) { return new Donut(data) });
this.donuts(items);
this.deletedonut = function (item) {
this.donuts.remove(item);
}
}
var viewModel;
$(document).ready(function() {
viewModel = new DonutViewModel();
ko.applyBindings(viewModel);
});
以下是HTML:
<tr>
<td><input id="txtdonutid" type="text" data-bind="value:id"/></td>
<td><input id="txtdonuttype" type="text" data-bind="value:type"/></td>
<td><input id="txtdonutname" type="text" data-bind="value:dname"/></td>
<td><input id="txtppu" type="text" data-bind="value:ppu"/></td>
<td><input type="button" value="Delete Donut" data-bind="click: function() {$parent.deletedonut($data)}"/></td>
</tr>
注意如何我已經數據綁定的刪除功能和這個作品!但如果我這樣做:
<td><input type="button" value="Delete Donut" data-bind="click: {$parent.deletedonut($data)}"/></td>
好吧,這是行不通的。刪除功能甚至沒有被擊中。
有人能告訴我我做錯了什麼嗎?
寫'數據綁定= 「點擊:函數(){$ parent.deletedonut($數據)}」'是正確的語法。你爲什麼要寫'data-bind =「點擊:{$ parent.deletedonut($ data)}」'? – nemesv
好吧,如果你看看http://knockoutjs.com/documentation/click-binding.html,點擊事件的綁定語法是data-bind =「click:myfunction」。這並不是說你必須在點擊綁定中使用function()。那爲什麼它不同? – devC
但是如果你想增加參數,你需要這個語法。請參閱data-bind =「click:{$ parent.deletedonut($ data)}」的說法。但在你的情況下,以下應該工作:'data-bind =「點擊:$ parent.deletedonut」' – nemesv