Bonjour,
Voici le code html de ma page :
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <ion-header> <ion-navbar> <ion-title>Liste des demandes</ion-title> <ion-buttons end> <button ion-button icon-only (click)="closeModal()"> <ion-icon item-right name="ios-close-outline"></ion-icon> </button> </ion-buttons> </ion-navbar> </ion-header> <ion-content padding> <ion-list> <table width="100%"> <tr *ngFor="let MaDemande of DemandesATraiter" > <td> <ion-checkbox checked="{{MaDemande.checked}}" (ionChange)="updateDemande(MaDemande)"></ion-checkbox> </td> <td> <button ion-item (click)="select_item($event, MaDemande)"> Collaborateur : {{MaDemande.collaborateur}}<br/> Support : {{MaDemande.support}} <br/> Contrat : {{MaDemande.numContrat}} <br/> Date de début : {{MaDemande.DateDebut}} <br/> Date de fin : {{MaDemande.DateFin}}<br/> Statut : {{MaDemande.statutString}}<br/> Refus : {{MaDemande.refuse}} </button> </td> </tr> </table> </ion-list> <button type="submit" ion-button full (click)="traiterDemandes();">Traiter les demandes</button> </ion-content>
Le code de la page ts :
Ce que j'aimerai faire : dans la fonction select_item, quand le modal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 import { Component } from '@angular/core'; import { IonicPage, NavController, NavParams, ModalController } from 'ionic-angular'; import {DetailDemandePage} from '../detail-demande/detail-demande'; //import {AppService} from '../../app/app-service'; @IonicPage() @Component({ selector: 'page-liste-demandes', templateUrl: 'liste-demandes.html', //providers: [AppService] }) export class ListeDemandesPage { public DemandesATraiter:any; public ListeRefus:any; constructor(public navCtrl: NavController, public navParams: NavParams, /*private AppService:AppService, */private modalCtrl:ModalController) { this.DemandesATraiter=this.navParams.get("Demandes"); this.ListeRefus=this.navParams.get("Refus"); //alert(JSON.stringify(this.ListeRefus)); } closeModal(){ this.navCtrl.pop(); } select_item(event, var_item){ let indRefus:number; let profileModal = this.modalCtrl.create(DetailDemandePage, { infoDemande: var_item, Refus:this.ListeRefus });+ profileModal.onDidDismiss(data=>{ if(data) { if(data.Accepte=="0") { indRefus=Number(data.indRefus); this.DemandesATraiter[var_item.indice].statut="0"; this.DemandesATraiter[var_item.indice].statutString=var_item.messRefuse; this.DemandesATraiter[var_item.indice].refuse=this.ListeRefus[indRefus].libelle; this.DemandesATraiter[var_item.indice].oidrefuse=this.ListeRefus[indRefus].oid; this.DemandesATraiter[var_item.indice].indiceRefus=data.indRefus; } else { this.DemandesATraiter[var_item.indice].statut="1"; this.DemandesATraiter[var_item.indice].statutString=var_item.messAccepte; this.DemandesATraiter[var_item.indice].refuse=""; this.DemandesATraiter[var_item.indice].oidrefuse=""; this.DemandesATraiter[var_item.indice].indiceRefus="0"; } this.DemandesATraiter[var_item.indice].checked=true; } }); profileModal.present(); } //select_item updateDemande(param_item:any){ if(param_item){ if(!param_item.checked){ this.DemandesATraiter[param_item.indice].statut="1"; this.DemandesATraiter[param_item.indice].statutString=param_item.messAccepte; this.DemandesATraiter[param_item.indice].refuse=""; this.DemandesATraiter[param_item.indice].oidrefuse=""; this.DemandesATraiter[param_item.indice].indiceRefus="0"; } else { this.DemandesATraiter[param_item.indice].statut="1"; this.DemandesATraiter[param_item.indice].statutString=""; this.DemandesATraiter[param_item.indice].refuse=""; this.DemandesATraiter[param_item.indice].oidrefuse=""; this.DemandesATraiter[param_item.indice].indiceRefus="0"; } this.DemandesATraiter[param_item.indice].checked=!param_item.checked; } }//updateDemande traiterDemandes(){ } }retourne une promesse, le checkbox de la ligne passe à true.
Code : Sélectionner tout - Visualiser dans une fenêtre à part DetailDemandePage
Le soucis que je rencontre, si le checkbox est à false (lors de l'ouverture de la page, les checkbox sont tous initialisés à false), il ne m'est pas possible de le faire passer à true par programmation, ce message d'erreur apparait :
Des idées de solution?Runtime Error
ExpressionChangedAfterItHasBeenCheckedError : Expression has changed after it was checked. Previous value: 'true'? Current value: 'false'
Merci
Partager