2016-08-17 18 views
1

我一直在試圖實現一個自動完成到我的形式在angular2輸入。如果輸入無效,我想顯示第二個隱藏的div。你能幫我怎麼做嗎?如何在Angular2中進行自動完成驗證?

<div class="form-group"> 
<div *ngSwitchCase="'organisation'"> 
    <label [attr.for]="parameter.ObjectID" [innerHtml]="parameter.paramLabel"> </label> 
    <input [id]='parameter.ObjectID' class="form-control" type="text" [(ngModel)]="parameter.value" (keyup)="filter()" (change)="filter()" (blur)="filter()" [required]="parameter.mandatory" name="mandatory" #mandatory="ngModel"> 
    <div *ngIf="companyNames.length > 0"> 
     <ul *ngFor="let item of filteredCompanyList"> 
      <li> 
       <a (click)="select(item)">{{item}}</a> 
      </li> 
     </ul> 
    </div> 
    <div [hidden]="!parameter.mandatory || mandatory.valid || mandatory.pristine" class="alert alert-danger">Please do not leave this field blank</div> 
    <div [hidden]="temp(mandatory)" class="alert alert-danger">The organisation entered was either not found or does not subscribe to the product</div> 
</div> 

回答

0

第二個隱藏的div將你的函數temp()返回false顯示。

您必須在此功能中執行所有檢查(輸入有效?)。

UPDATE:

只要使用這個[hidden]="filteredCompanyList.length > 0"顯示/隱藏DIV。

+0

第一個隱藏的div是檢查輸入是否爲空。第二個應該在用戶把不是指定組織之一的值放到json文件中時顯示。我正在尋找像ngfocus或類似的東西,如果有辦法做到這一點。 – rsimsek

+0

所以你應該在你的組件內部使用一個布爾變量!默認值是true(div是隱藏的!),並且在搜索之後,如果沒有匹配,則將此變量設置爲false。或者只是使用filteredCompanyList.length!= 0 – mxii