Nativescript Angular:如何在点击事件中将按钮视图作为参数传递?

Nativescript Angular:如何在点击事件中将按钮视图作为参数传递?,angular,nativescript,angular2-nativescript,Angular,Nativescript,Angular2 Nativescript,我的Nativescript Angular应用程序以项目列表的形式动态返回数据。对于每个项目,我使用*ngFor创建一个按钮,并附加一个点击事件。我想将按钮本身作为参数传递,因为我需要在点击时添加cssClass。但是我不能使用ViewChild,因为数据是动态的。我如何做到这一点 <Button *ngFor="let item of items" [text]="item.name" (tap)="select(item, buttonObject ? )></Butto

我的Nativescript Angular应用程序以项目列表的形式动态返回数据。对于每个项目,我使用*ngFor创建一个按钮,并附加一个点击事件。我想将按钮本身作为参数传递,因为我需要在点击时添加cssClass。但是我不能使用ViewChild,因为数据是动态的。我如何做到这一点

<Button *ngFor="let item of items" [text]="item.name" (tap)="select(item, buttonObject ? )></Button>


select(item, buttonObject) {
  let button = <View>buttonObject.nativeElement;
  ...
}

这可以使用局部变量完成:

<Button #myButton *ngFor="let item of items"
     [text]="item.name" (tap)="select(item, myButton)></Button>


select(item, buttonObject) {
   let button = buttonObject;
}

这可以使用局部变量完成:

<Button #myButton *ngFor="let item of items"
     [text]="item.name" (tap)="select(item, myButton)></Button>


select(item, buttonObject) {
   let button = buttonObject;
}

对于将来寻找相同答案的其他人,除了@HabibKazemi提供的解决方案之外,为了获得父视图中的每个按钮,只需执行以下操作:

select(button, item) {
  let parent = button.parent;
  let count = parent.getChildrenCount();
  for (var c = 0; c < count; c++) {
    let btn = parent.getChildAt(c);
    btn.color = "black";
  }
  button.color = "white;
}
选择(按钮,项目){
让parent=button.parent;
let count=parent.getChildrenCount();
对于(var c=0;c
对于将来寻找相同答案的其他人,除了@HabibKazemi提供的解决方案外,为了获得父视图中的每个按钮,只需执行以下操作:

select(button, item) {
  let parent = button.parent;
  let count = parent.getChildrenCount();
  for (var c = 0; c < count; c++) {
    let btn = parent.getChildAt(c);
    btn.color = "black";
  }
  button.color = "white;
}
选择(按钮,项目){
让parent=button.parent;
let count=parent.getChildrenCount();
对于(var c=0;c