Jquery 从剑道网格中移除绑定到击倒嵌套可观察项的项目
我有一个剑道网和击倒组合。 我的网格源来自嵌套的可观察数组。网格的最后一列包含删除该行的按钮。我怎样才能做删除Jquery 从剑道网格中移除绑定到击倒嵌套可观察项的项目,jquery,knockout.js,kendo-grid,knockout-kendo,Jquery,Knockout.js,Kendo Grid,Knockout Kendo,我有一个剑道网和击倒组合。 我的网格源来自嵌套的可观察数组。网格的最后一列包含删除该行的按钮。我怎样才能做删除 你的小提琴拉得很近。您不希望在foreach循环中添加id,因为它复制了id。一个选项是在父对象(具有foreach的对象)上添加id,并连接一个处理程序,如: $("#selectedServices").on("click", ".btnRemove", function (e) { var $current = $(e.currentTarget), w
你的小提琴拉得很近。您不希望在
foreach
循环中添加id
,因为它复制了id。一个选项是在父对象(具有foreach
的对象)上添加id,并连接一个处理程序,如:
$("#selectedServices").on("click", ".btnRemove", function (e) {
var $current = $(e.currentTarget),
widget = $current.closest(".k-grid").data("kendoGrid"),
dataItem = widget && widget.dataItem($current.closest("tr")),
item = ko.dataFor($current[0]);
if (item, dataItem && dataItem.id) {
vm.removeSample(item, dataItem.id);
}
});
因此,我们通过查看单击元素的祖先来获取网格实例,然后通过查看单击元素所在的行来标识dataItem,最后使用id来删除该项
这里的工作小提琴:对调用
removeSample
做了一点小小的调整,并调整了以前是removietem
的逻辑。非常感谢@RPNiemeyer
$("#selectedServices").on("click", ".btnRemove", function (e) {
var $current = $(e.currentTarget),
widget = $current.closest(".k-grid").data("kendoGrid"),
dataItem = widget && widget.dataItem($current.closest("tr")),
item = ko.dataFor($current[0]);
if (item, dataItem && dataItem.id) {
vm.removeSample(item, dataItem.id);
}
});