javascript - 如何获取数据表行值并路由到另一个函数?

标签 javascript jquery angular typescript datatable

如果我使用箭头函数,我可以路由到另一个组件,但我无法获取数据表值,下面是代码:

$('#list-country tbody').on('click', '.fa-edit', function() {
  var tr = $(this).closest("tr");
  var data = $("#list-country").DataTable().row(tr).data();
  console.log(data);
  this.router.navigate(['/apps/edit-country']);
  this.routePage();
});

如果我使用普通函数,我可以获取值,但我无法路由,下面是代码:

$('#list-country tbody').on('click', '.fa-edit', () => {

  var tr = $(this).closest("tr");
  var data = $("#list-country").DataTable().row(tr).data();
  console.log(data);
  this.routePage();
});

这些函数在 ngInit() 中。

最佳答案

此解决方案可能对您有用:

  1. 首先在全局范围内声明一个变量(方法/类)
  2. 在构造函数中将它初始化为this(如果你有的话)
  3. 使用 self 代替 this 如下所示

     var self = this;  //declare this in constructor or method
    
     $('#list-country tbody').on( 'click', '.fa-edit', function ()  {
               var tr = $(this).closest("tr");
               var data = $("#list-country").DataTable().row(tr).data();
               console.log(data);
               self.router.navigate(['/apps/edit-country']);
               self.routePage();
           });
    

关于javascript - 如何获取数据表行值并路由到另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44801732/

相关文章:

javascript - BiQuadFilters 与 MyOwnFilter - Javascript WebAudio API

css - 警告 : @import must precede all other statements (besides @charset)

Angular14:支持旧版浏览器的官方方式是什么?

css - 使用 Angular 中的 Angular Material/Flex-Layout 创建具有固定标题、固定侧边栏、固定内容部分的布局

javascript - Wicket 7 [WebPage] - jquery 请求创建新实例 WebPage

javascript - AngularJS ng-repeat 指令不适用于我的 EventController.js

javascript - 如何在 hashchange 上完成目标?

javascript - 无法使 JavaScript 事件处理程序获取文本框文本属性

javascript - 调整大小和调用函数

javascript - 确定鼠标悬停在元素上时是否有元素 "dragged"