调用routingService在javascript函数中导航时发出问题

时间:2017-09-27 18:08:55

标签: javascript angular

我的方法绑定到名为onCellPrepared的角度组件 我在方法中使用jquery附加了span标记,在span标记的onclick事件中我想调用一个角度服务来将导航路由到另一个页面?

  1. 如何在我的javascript方法中调用角度服务。目前,当我致电this.routerService.navigate(...)

  2. 时,它会显示错误
  3. 我是否可以通过java脚本路由设置页面在点击跨区域时应该导航的位置,它仍然应该通过角度路由配置。

    onCellPrepared(e:any) {
      if (e.cell && e.cell.type == "D") {
        $('<span>')
          .addClass('fa fa-cog')
          .click(function(arg) {
            sessionStorage.setItem("filter",
              JSON.stringify([e.cell.path]));
            this.routerService.navigate(["reconciliation-detail"]);
          })
        .appendTo(e.cellElement);
      }
    }
    

1 个答案:

答案 0 :(得分:0)

您遇到的问题来自this

的背景

在您的点击回调函数this内部没有引用您的类,并且不包含路由器服务,它指的是它所在的函数。

要解决此问题,您可以使用箭头符号()=>{}代替function(){}

使用箭头表示法停止由函数创建this上下文。

以下是有关如何使用Arrow Notation

的资源