(角度6)将值从方法传递给另一个方法

时间:2018-12-03 15:59:18

标签: angular methods

我正在使用Angulat应用程序,单击按钮并调用方法时,我需要一些信息以传递给另一个方法(或全局变量的值)。这是主意:

<tr (click)="select(data.id)" *ngFor="let data of User">

当我单击此按钮时,我会将ID发送到“选择”方法,该方法将运行一些jquery,并使该特定选项变为灰色。这样做时,我需要将“ data.id”作为全局变量的值传递。发生这种情况是因为我有一个“编辑”按钮,它将使用此ID

这里是按钮:

<a (click)='redirect()' id="edt">

这些是方法:

Data: number;

select(data: number) //this is the data.id
{
  $("tr#body").click(function(){
    $("tr#body").css({
      'background-color' : 'transparent'
    })
    $(this).css({
      'background-color' : 'rgba(0,0,0,.2)'
    })
  })

this.Data = data;

}

redirect(){
  this.router.navigateByUrl('Someurl/' + Data)
}

我需要“重定向”才能使用“选择”中的数据,我这样做的想法是定义一个名为“ Data”的全局变量,并尝试使用类似的方法保存本地的“ data”值

  

this.Data = data;

但是全局变量Data从不从'select'中获取值。我应该怎么做?

OBS:我无法从“ select”中调用“ redirect”方法,因为“ EDIT”不是唯一可能要使用Id值的方法

2 个答案:

答案 0 :(得分:1)

我认为那你会写类似

redirect(){
 // this.router.navigateByUrl('Someurl/' + this.Data);
 this.router.navigate(['Someurl', this.Data]);
 // both way you can do it
}

答案 1 :(得分:0)

我设法通过将ID的值放入cookie中并在以后调用它来使其工作。 这不是最好的事情,但是可以。

this.cookieService.set('ID', data);