javascript - 制表符中的更改器(mutator)不适用于相同的编辑功能

标签 javascript jquery tabulator mutators

我有一个场景,我在下面定义突变器,当我编辑单元格时,它在使用常见突变器的地方不起作用?我想这是一个错误还是有其他方法可以做到这一点?

 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
    }
  }
相反,我会将此解释为 mutator 不在公共(public)领域工作。
这是fiddle用上述用例解释:

最佳答案

发生这种情况是因为仅在更新其字段时才调用 mutator 函数,每个单独的函数都不知道它是否依赖于表中的任何其他字段。
我建议在 cellEdited已编辑列的回调,您包括 row.update触发依赖列的更新。
例如,“TimeDiff”列依赖于“TimeStart”列,因此在 TimeStart 列的定义中,您应该包括以下内容:

{title: "Start Time", field: "TimeStart", cellEdited:function(cell){
    cell.getRow().update({TimeDiff:true});
}},
然后,这将在编辑 TimeStart 时触发相关 TimeDiff 突变体的突变

关于javascript - 制表符中的更改器(mutator)不适用于相同的编辑功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65050111/

相关文章:

javascript - Firefox 不会在@font-face 中声明的跨浏览器请求中发送 cookie

javascript - 我如何使用 Jquery 动态获取所有元素的属性值?

javascript - 如何在deferred.then中的ajax之后提交表单

javascript - 使用格式化程序绑定(bind)编辑图标时,Angular8(制表符)中未触发 onclick 事件

javascript - 在 React 中调用制表函数

javascript - 如何使用Tabulator进行全行搜索?

javascript - 导轨 3 : Omniauth-Facebook: Won't load in a popup

javascript - 默认参数值未定义;这是一个 JavaScript 错误吗?

Javascript:如何正确从window.navigator中删除属性?

jquery - 多个页面网站上的同一页面子导航