按鈕點擊時,我使用模態對話框。在那,我在listview中使用開關控制。如何從列表視圖列項的所有開關控制價值,才能在angular2 nativescript
對於列表視圖中的每一行項目,我需要進行開關控制來獲取值。
編輯:
app.modal.html:
<ListView [items]="getListData" class="list" height="160">
<ng-template let-item="item" let-myIndex="index">
<GridLayout rows="*" columns="1.5*, auto, auto">
<Label row="0" col="0" class="item-name" [text]="item.category" ></Label>
<Switch row="0" col="1" [checked]="item.toggleVal" (checkedChange)="onFirstChecked($event, myIndex)"></Switch>
<Image row="0" col="2" src="res://menu_alert" stretch="none"></Image>
</GridLayout>
</ng-template>
</ListView>
app.modal.ts文件:
public map: Map<number, boolean>;
public newFeedsList: Array<NewFeed> = [];
public constructor(private params: ModalDialogParams) {
this.map = new Map<number, boolean>();
}
public onFirstChecked(args, index: number) {
let firstSwitch = <Switch>args.object;
if(index != null && firstSwitch.checked){
this.map.set(this.newFeedsList[index].id , firstSwitch.checked);
console.log("Map :",this.map);
console.log("Map :", JSON.stringify(this.map));
} else {
}
}
NewFeed.ts:
export class NewFeed {
constructor(public id: number,public toggleVal : string, public title: string, public description:string, public date:string,public category:string, public imageUrl:string,public iconName:string) {}
}
所以,當我啓用列表視圖行項目中的開關,我存儲在數組中的索引。
發生什麼事:
現在我無法打印在控制檯中的哈希映射。它在控制檯中顯示Map:[object Map]
。
我需要什麼:
當我點擊列表視圖中的項目排開關,它必須得到資訊供稿ID和toggleVal作爲鍵和值。所以我用地圖。
因爲我將id保存爲key和toggleVal作爲map中的值。但我無法在map.so中添加id和toggleVal,因此我不知道這兩個值是否已添加到map中。
應該在同一位置發生變化,如果我們切換單列表視圖行項目「n」的次數。
是這樣相似? https://stackoverflow.com/questions/45198044/databinding-from-within-a-template-in-angular/45199711 – ishandutta2007