Angular 按字母顺序排列下拉列表 添加实验室 {{lab.labCode}}
我正在维护一些以前没有经验的角度代码 我正在尝试创建一个按字母顺序排序的下拉列表。我试着模仿,但没有成功 我试过Angular 按字母顺序排列下拉列表 添加实验室 {{lab.labCode}},angular,sorting,Angular,Sorting,我正在维护一些以前没有经验的角度代码 我正在尝试创建一个按字母顺序排序的下拉列表。我试着模仿,但没有成功 我试过“让实验室的实验室| orderBy:'lab.labCode';” 和“让lab of labs.sort();”,因为labs已经有了排序功能 排序函数原型是sort(compareFn?:(a:T,b:T)=>number):这个带有: 对数组排序。 *@param compareFn用于确定元素顺序的函数的名称。如果省略,则按顺序对元素进行排序 升序,ASCII字符顺序 如您所
“让实验室的实验室| orderBy:'lab.labCode';”
和“让lab of labs.sort();”
,因为labs已经有了排序功能
排序函数原型是sort(compareFn?:(a:T,b:T)=>number):这个代码>带有:
对数组排序。
*@param compareFn用于确定元素顺序的函数的名称。如果省略,则按顺序对元素进行排序
升序,ASCII字符顺序
如您所见,实验室有一个labCode(字符串),需要用于排序
任何帮助都将不胜感激
----编辑---------
实验室阵列的内容:
在angular的更高版本中没有örderBy管道。您必须按照示例中给出的方法编写管道,并应用相同的方法 您可以在ngOnInit()中对数组进行排序
在您的html中,使用sorted代替labs下面的代码可以添加到组件的ngOnInit()中或API调用success中以按字母顺序排序
labs.sort((a,b)=>a.labCode.localeCompare(b.labCode))强>
希望这能有所帮助。为什么不在OnInit()中订购labs数组?因为我的想法是,“找到发生这种情况的地方,然后修改它以实现我的目的”,我想。我提醒你,我在这方面没有经验。你能详细说明一下吗?你能展示一下实验室阵列的内容吗?请检查编辑部分。我希望这就是你的意思。
<div class="form-group" *jhiHasAnyAuthority="['ROLE_ADMIN']">
<label class="form-control-label" jhiTranslate="ManagementApp.project.lab" for="field_leader">Add Lab</label>
<select class="form-control" id="field_lab" name="lab">
<option [ngValue]="null"></option>
<option *ngFor="let lab of labs;" (click)="addLab(lab)">{{lab.labCode}}</option>
</select>
</div>
sorted : []
ngOnInit(): void {
this.sorted = labs.sort((a, b) => a.labCode> b.labCode? 1 : -1);
}