2017-10-04 8 views
1

これは私の問題は、私は値を入力した場合、最初のそれはアドオンが表示されるということです.htmlをAngular2 ng-selectorはアルファベット順にフィルタリングされていません。

<ng-selector 
       name="company" 
       [(ngModel)]="company_selected" 

       [formControl]="loanApplyForm.controls['company']" 
       (loadValues)="fetchHLCompany($event)" 
       id-field="id" label-field="name" 
       [options]="company_values" 
       allow-creation="true" 
       placeholder="Search your company"> 
</ng-selector> 

で使用されるセレクタをNGと。入力された値がリストにない場合にのみ追加するように頼みたいと思います。許可された作成を削除しましたが、要求していません。しかし、私はそれがリストにない場合は追加するように頼みたい。 次の問題は、アルファベット順に検索していないことです。 私を助けてください。前もって感謝します。

答えて

0

私は右のあなたを理解していれば、あなたは次のように行うことができます。

<ng-selector 
       name="company" 
       [(ngModel)]="company_selected" 

       [formControl]="loanApplyForm.controls['company']" 
       (loadValues)="fetchHLCompany($event)" 
       id-field="id" label-field="name" 
       [options]="company_values" 
       allow-creation="checkAddNewItem()" 
       placeholder="Search your company"> 
</ng-selector> 

あなたの機能:配列の値のいくつかは、いくつかの帰属値が含まれている場合、我々はチェックこの機能で

checkAddNewItem() { 
    return !company_values.filter(item => item.includes(company_selected)).length; 
} 

。この単語または文字が含まれている場合はtrueを返し、この値を追加できます。

次の質問に回答してください。必要ならば、そのオプションリストがソートされます。コンポーネントに設定する前にソートする必要があります。あなたがそれを得るとき。

company_values.sort((a, b) => a.localeCompare(b)); 
関連する問題