我有一个选择 - 在角选项,我需要检查具有相同的ID数据库ID值,这就是我一直是这样的:
isDropdownValueSelected(amf: ApplicationModuleForm): boolean {
for (let i = 0; i < this.role.applicationForms.length; i++) {
if (this.role.applicationForms[i].id == amf.id) {
return true;
}
else {
return false;
}
}
}
我的角部位:
<div class="col-lg-9">
<select id="applicationModuleFormSelect" name="applicationModuleFormSelect" class="form-control multiselect-select-all" multiple="multiple" data-fouc>
<option *ngFor="let amf of appModuleForms;" [value]="amf.id" [selected]="isDropdownValueSelected(amf)">{{amf.title}}</option>
</select>
</div>
所以基本上我想循环中选择每个ID,如果我发现我的数组类似我将返回true,因为阵列this.role.applicationForms
从数据库中保存的值,但可惜的是,这并不工作,没有什么是下拉列表中选择和我一起控制台测试登录它说,如果有3只值1,甚至存在..
谢谢你们干杯
也许你需要为假值移动到结束返回,因为每return
语句结束的功能。
isDropdownValueSelected(amf: ApplicationModuleForm): boolean {
for (let i = 0; i < this.role.applicationForms.length; i++) {
if (this.role.applicationForms[i].id == amf.id) {
return true;
}
}
return false;
}
当第一元素的ID匹配,因为你回来每个校验值,此功能只适用。
您应该更新的代码是这样的:
isDropdownValueSelected(amf: ApplicationModuleForm): boolean {
for (let i = 0; i < this.role.applicationForms.length; i++) {
if (this.role.applicationForms[i].id == amf.id) {
return true;
}
}
return false;
}
假设applicationForms
是数组,则可以使用该方法some:
isDropdownValueSelected(amf: ApplicationModuleForm): boolean {
return this.role.applicationForms.some(({id}) => id === amf.id);
}
使用some
运营商,而不是循环在你的元素:
isDropdownValueSelected(amf: ApplicationModuleForm): boolean {
return this.role.applicationForms.some(e => e.id === amf.id);
}
你不需要for
循环:
isDropdownValueSelected(amf: ApplicationModuleForm): boolean {
if (this.role.applicationForms.find(x => x.id == amf.id)) {
return true;
}
else {
return false;
}
}