1

这是 .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>

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

4

1 回答 1

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));
于 2017-10-04T10:26:09.133 回答