2017-10-14 5 views
1

J'essaie de créer des champs dynamiques en ionique pour mon application de sondagecomment écrire un [(ngModel)] = "" dynamiquement sur ionique?

Premier. J'ai 2 tableaux

enter image description here

alors je suis en train de créer les champs avec un cas swich

<ion-list *ngFor="let preguntas of LocalPreguntas"> 
 
     <ion-card > 
 
     <ion-card-header color="primary"> 
 
      {{ preguntas.pregunta}} 
 
     </ion-card-header> 
 
     <ion-card-content [ngSwitch]="preguntas.tipo"> 
 
    
 
        <!-- Respuesta Si o no--> 
 
        <div *ngSwitchCase="4" style="display:block" > 
 
         <ion-list radio-group name="{{preguntas.id}}" [(ngModel)]="Form.radio_vf" required> 
 
          <ion-item > 
 
           <ion-label color="dark">Si</ion-label> 
 
           <ion-radio value="Si"></ion-radio> 
 
          </ion-item> 
 
          
 
          <ion-item > 
 
           <ion-label color="dark">No</ion-label> 
 
           <ion-radio value="No"></ion-radio> 
 
          </ion-item> 
 

 
         </ion-list> 
 
        </div> 
 
     </ion-card-content> 
 
     </ion-card> 
 
    </ion-list>
son tout droit

enter image description here

mais logiquement c'est faux [(ngModel)] = "Form.txt_cantidad" b ecause l'application peut répéter les types de questions

pour résoudre ce problème. Je veux mettre l'id question dans le [(ngModel)]

<div *ngSwitchCase="4" style="display:block" > 
 
<ion-list radio-group name="{{preguntas.id}}" [(ngModel)]="{{preguntas.id}}" required> 
 
     <ion-item > 
 
       <ion-label color="dark">Si</ion-label> 
 
       <ion-radio value="Si"></ion-radio> 
 
     </ion-item> 
 
          
 
     <ion-item > 
 
       <ion-label color="dark">No</ion-label> 
 
       <ion-radio value="No"></ion-radio> 
 
     </ion-item> 
 

 
    </ion-list> 
 
</div>

enter image description here

+1

Retirez la '{{}}' qui est dans le ngModel, vous n'avez pas besoin d'interpolation lorsque vous utilisez la syntaxe des liaisons d'entrée '[]' dans votre cas, vous l'utilisez en combinaison avec la syntaxe de sortie '()'. – Abdel

+0

ok ça marche [(ngModel)] = "preguntas.id". mais comment puis-je montrer le modèle .. withconsole.log (ngModel); ???????? –

+0

Vous voulez voir la valeur de LocalPreguntas? Il suffit de le mettre dans un '' ''

 {{ LocalPreguntas | json }}
'' ' – Abdel

Répondre

0

J'ai trouvé la solution

regard sur le terrain Vf. est un tableau dans un autre tableau

public Form = { 
     cliente:"", 
     encueestaID:"", 
     usuarioid:"", 
     vf:{ 
      vf:{} 
      }, 
     seleccionUnica:[], 
     seleccionMultiple:[], 
     tiempotipo:[], 
     tipoCantidad:[], 
     cantidad:[], 
     1:"" 
    }; 

à écrire dans ce tableau que j'utilise le code suivant

<div *ngSwitchCase="4" style="display:block" > 
         <ion-list radio-group name="{{preguntas.id}}" [(ngModel)]="Form.vf.vf[preguntas.id]" required> 
          <ion-item > 
           <ion-label color="dark">Si</ion-label> 
           <ion-radio value="Si"></ion-radio> 
          </ion-item> 

          <ion-item > 
           <ion-label color="dark">No</ion-label> 
           <ion-radio value="No"></ion-radio> 
          </ion-item> 

         </ion-list> 
        </div> 

résultat enter image description here