Nativescript Angular:如何在点击事件中将按钮视图作为参数传递?
Nativescript Angular: How to pass a button view as a parameter in tap event ?
My Nativescript Angular 应用动态 returns 数据作为项目列表。对于每个项目,我使用 *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;
}
对于将来寻找相同答案的其他人,除了@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;
}
My Nativescript Angular 应用动态 returns 数据作为项目列表。对于每个项目,我使用 *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;
}
对于将来寻找相同答案的其他人,除了@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;
}