Joh*_*ohn 6 javascript jquery mutators tabulator
我有一个场景,我在下面定义了修改器,当我编辑单元格时,它在使用通用修改器的地方不起作用?我想这是一个错误还是有其他方法可以做到这一点?
var diffMutator_FEcontacted = function (value, data, type, params, component) {
var start = moment(data.incident_start, 'DD/MM/YYYY HH:mm')
var end = moment(data.First_expert_contacted_by_SE, 'DD/MM/YYYY HH:mm') //common feild
var new_value = end.diff(start, 'minutes');
if (type == "edit") {
console.log('edit');
component.getRow().getCell("time_to_contact_first_exp_calc").setValue(new_value);
return value;
} else {
return new_value
}
}
var diffMutator_REcontacted = function (value, data, type, params, component) {
var start = moment(data.incident_start, 'DD/MM/YYYY HH:mm')
var end = moment(data.Right_expert_found_at, 'DD/MM/YYYY HH:mm') //common feild
var new_value = end.diff(start, 'minutes');
if (type == "edit") {
console.log('edit');
component.getRow().getCell("Time_to_find_right_exp_calc").setValue(new_value);
return value;
} else {
return new_value
}
}
var diffMutator_FEREdiff = function (value, data, type, params, component) {
var start = moment(data.First_expert_contacted_by_SE, 'DD/MM/YYYY HH:mm') //common feild in another fucntion
var end = moment(data.Right_expert_found_at, 'DD/MM/YYYY HH:mm') //common feild in another function
var new_value = end.diff(start, 'minutes');
if (type == "edit") {
console.log('edit');
component.getRow().getCell("time_diff_FE_RE").setValue(new_value);
return value;
} else {
return new_value
}
}
Run Code Online (Sandbox Code Playgroud)
相反,我会解释这一点,因为 mutator 不在公共领域工作。这是上面使用案例解释的小提琴:
发生这种情况是因为仅当更新其字段时才调用增变器函数,每个单独的函数不知道它是否依赖于表中的任何其他字段。
我建议在cellEdited已编辑列的回调中包含一个row.update来触发依赖列的更新。
因此,例如“TimeDiff”列取决于“TimeStart”列,因此在 TimeStart 列的定义中应包含以下内容:
{title: "Start Time", field: "TimeStart", cellEdited:function(cell){
cell.getRow().update({TimeDiff:true});
}},
Run Code Online (Sandbox Code Playgroud)
当编辑 TimeStart 时,这将触发依赖的 TimeDiff 变异器的变异
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |