2016-03-24 33 views
3

我有一個這樣的數組:AngularJS ngIf對象的屬性是

{ 
    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"] 
} 

現在,我想這樣做,在我的HTML:

<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> 

是否有可能檢查對象包含一個屬性像valueChoices比顯示上面的HTML。或者這不是正確的做法嗎?

回答

5

是的,你可以使用Elvis操作

*ngIf="prototype?.valueChoices" 

?會像一個三元運算符。這裏prototype??將確保下一個表達式.valueChoices將被讀取,直到prototype有價值。使用Elvis運營商的優勢是你可以n號碼?來處理變量存在檢查,如a?.b?.?c.?d