我在 jquery mobile 中使用 koGrid。当用户单击一行时,它将进入详细信息页面。在该页面中,用户可以更新数据并保存它。blow 是我的实现
var ProgressGrid = function(){
var self = this;
self.ticketList = ko.observableArray(servicet.filterTsFromStatus('PROGRESS'));
columnDefs: [
{
field: 'ticketNumber',
displayName: 'Ticket',
cellTemplate: "<button data-bind=\"click: function() {getRowDetails($parent.entity)}\"><span data-bind=\"text:$parent.entity['ticketNumber']\"></span></button>",
width: '*',
minWidth: "200px"
}
self.getRowDetails = function(row){
var rtJS = servicet.getTicketById(row.id);
servicet.goToTicketDetails(rtJS,false);
},
}
工单对象
function RunTicket(jsRunTicket) {
ko.validatedObservable(ko.mapping.fromJS(jsRunTicket, validationMapping, self));
this.save = function (action) {
}
}
服务方式
goToRunTicketDetails: function(ticketJS,readOnly){
ko.cleanNode(document.getElementById('runTicketDetailsPage'));
var rt = new Ticket(ticketJS);
ko.applyBindings(rt, document.getElementById("ticketDetailsPage"));
$.mobile.changePage($('#ticketDetailsPage')) ;
}
当我单击网格中的行按钮时,它将进入“ticketDetailsPage”,我可以更新值并将其保存到服务器。首先保存部分功能工作正常,如果我再次进入网格加载另一张票并save "保存信息会出现两次"
如果我保存 5 张票“保存”消息会出现五次。我认为有旧票活动没有使用 DOM 更新,谁能帮我解决这个问题,我已经尝试解决了两天,但仍然找不到合适的解决方案,
先感谢您