Angular2 ng-selector不按字母顺序过滤。

时间:2017-10-04 09:52:07

标签: angular typescript angular-ngselect

这是.html中使用的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>

我的问题是,如果我输入一个值,首先它会显示添加。我想要求仅在列表中没有键入的值时添加。我删除了允许创建,然后它没有询问。但是我想要添加它是否不在列表中。 下一个问题是它不是按字母顺序搜索。 请帮我。提前致谢。

1 个答案:

答案 0 :(得分: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));