2016-03-24 13 views
3
Attribut

Ich habe ein Array wie folgt aus:AngularJS ngIf Objekt hat

{ 
    selector: "departureDate", 
    selectorName: "Departure Date", 
    constraints: ["GreaterThan", "LessThan", "Equals", "NotEquals"], 
    valueType: "Date" 
}, { 
    selector: "arrivalDay", 
    selectorName: "Arrival day(of week)", 
    constraints: ["In"], 
    valueType: "ChoiceList", 
    valueChoices: ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"] 
} 

Jetzt möchte ich dies in meinem HTML tun:

<div class="col-xs-3" *ngIf="prototype.valueChoices"> 
      <select class="form-control" [(ngModel)]="expression.valueChoice"> 
       <option *ngFor="#valueChoice of prototype.valueChoices" [value]="constraint"> 
        {{ valueChoice }} 
       </option> 
      </select> 
     </div> 

Ist es möglich, zu überprüfen, ob das Objekt ein Attribut enthält like valueChoices als zeige den HTML wie oben. Oder ist das nicht der richtige Weg?

Antwort

5

Ja, könnten Sie Elvis Operator

*ngIf="prototype?.valueChoices" 

Wo ? wie ein ternärer Operator fungieren. Hier wird prototype? 's ? sicherstellen, dass der nächste Ausdruck .valueChoices gelesen werden würde, bis prototype Wert hat. Der Vorteil der Verwendung Operator ist, können Sie n Nummer von ?, um Variablen Existenzprüfung wie a?.b?.?c.?d

zu handhaben