如何从ng-select组件中获取选中的对象值?
嘿,这个问题很常见,我来帮你解决!想要让ng-select返回整个选中的对象而不是单独的ID,其实只需要调整一下bindValue的配置就行,具体有两种常用方式:
方式一:移除
bindValue属性
ng-select默认如果不指定bindValue,会直接把整个选中的item对象作为ngModel的值。你可以删掉代码里的bindValue="ID",这样[(ngModel)]="validFilter.selectedValue"就会自动绑定选中的完整对象了。方式二:显式绑定整个对象
如果想要更明确地表明绑定的是整个对象,可以把bindValue设为.,也就是bindValue=".",效果和上面一样,validFilter.selectedValue会存储选中的完整对象。
修改后的代码示例
<ng-container *ngFor="let validFilter of validFiltersData; let i = index" > <div *ngIf="validFilter.Values && validFilter.Values.length > 0" class=" filter col-md-4 "> <!-- 这里移除了bindValue="ID",或者替换成bindValue="." --> <ng-select [items]="validFilter.Values" bindLabel="Text" (change)="onFilterValueChage($event, validFilter)" class="input-md" [(ngModel)]="validFilter.selectedValue"> </ng-select> </div> </ng-container>
注意:如果你的
validFilter.selectedValue之前是用来存储ID(比如数字或字符串类型)的,现在需要确保它初始化为null或者匹配validFilter.Values里的对象结构,避免类型不匹配的问题。另外,(change)事件里的$event参数现在也会是完整的选中对象,你可以在onFilterValueChage方法里直接使用这个对象的所有属性。
内容的提问来源于stack exchange,提问作者Guy E
相关产品推荐
相关产品推荐

