2017-01-12 1 views
0

Je veux seulement utiliser ngModel si la variable existe comme ci-dessous. Si la variable app n'existe pas, je ne veux pas l'inclure dans mon modèle. J'ai pensé ci-dessous est le moyen le plus facile de faire cela, mais y at-il une meilleure façon de lier mon modèle sans vérifier app pour chaque élément et donc de dupliquer tout le monde?Existe-t-il un meilleur moyen d'assigner ngModel?

<input id="phone" *ngIf="app" [(ngModel)]="app.phone" [textMask]="{mask: phoneMask}" class="form-control" type="text" formControlName="phone" placeholder="Phone Number"> 
<input id="phone" *ngIf="!app"      [textMask]="{mask: phoneMask}" class="form-control" type="text" formControlName="phone" placeholder="Phone Number"> 

Répondre

0

Vous pouvez vérifier app au niveau du conteneur et utiliser les propriétés à l'intérieur du conteneur, si l'application existe comme ci-dessous:

<div *ngIf="app"> 
    <div [(ngModel)]="app.phone"></div> 
    <div [(ngModel)]="app.address"></div> 
    <div [(ngModel)]="app.pin"></div> 
</div> 

Par conséquent, vous ne devez vérifier à plusieurs reprises pour app à chaque élément !

+0

Ce genre de aidé. Fondamentalement, le contexte est si 'app' existe, alors les entrées de formulaires auront le contenu de l'objet' app'. Mais si "app" n'existe pas, le formulaire sera vide. Je pensais peut-être 'if (app) then ngModel = app.whatever else n'attribue pas ngModel'. Quelque chose dans ce sens. – gh0st