Я создал listview. Для каждого элемента listview у меня есть одна кнопка. При нажатии на эту кнопку мне нужно изменить текст.
For Example :
Я нажимаю кнопку 0-го элемента просмотра списка индексов. При нажатии на эту кнопку необходимо изменить только текст этой кнопки. Но при этом меняются все тексты кнопок.What's happening now :
При нажатии на эту кнопку в элементе просмотра списка изменяется текст во всей кнопке.What I need :
Когда я нажимаю эту кнопку в элементе списка, мне нужно изменить текст только в этой конкретной кнопке.
html:
<StackLayout class="page">
<ListView [items]="items" class="list-group">
<ng-template let-item="item" let-myIndex="index">
<GridLayout rows="auto" columns="*, auto" >
<Label [nsRouterLink]="['/item', item.id]" [text]="item.name" row="0" col="0" class="list-group-item"> </Label>
<Button text= "{{textBtn}}" (tap) ="checkInstall($event)" row="0" col="1" [id]="myIndex"> </Button> ----> Getting button index
</GridLayout>
</ng-template>
</ListView>
</StackLayout>
ts файл:
checkInstall(args: EventData) : void{
let button = <Button>args.object;
this.getId = args.object.get("id");
if(this.getId == 0) { ---> based on the button index 0, checking app is installed or not.
appavailability.available("com.facebook.lite").then((avail: boolean) => {
console.log("App available? " + avail);
if(avail == true){
console.log("button id :"+ args.object.get("id"));
this.textBtn = "Remove";
console.log("True", "Test");
} else {
console.log("False", "Test");
}
});
} else {
this.textBtn = "Install";
}
}
cmd:
При нажатии на кнопку просмотра списка 0-й позиции я получаю следующее:
App Available ? true
button id : 0
True Test