我在 for 循环中生成 ngl-lookup。对于每个 ngl-lookup,我都会有一个下拉列表,用于定义查找函数的来源。例如,如果用户从下拉值“猫”中选择,我想在 ngl-lookup 中显示所有猫的名字。对于列表中的第二个 ngl-lookup,如果用户选择“狗”,则应显示狗的名称。
我试图将对象 ID 提供给查找函数,但是我没有得到我正在输入搜索字段的查询。
此外,一旦我从建议列表中选择了一个值,我想执行额外的逻辑。
关于如何用 Angular 4 解决它的任何想法?
这不起作用:
<div *ngFor="let myObject of myObjects">
<ngl-lookup [lookup]="lookup(myObject.id)" [(pick)]="onPick(myObject.id, selectedValue)" debounce="0" placeholder="Search">
</ngl-lookup>
</div>
角组件:
lookup(query: string, objectId: number): string[] {
if (!query) {
return null;
}
let myObject = this.myObjects.find(x => x.id === objectId);
return myObject.values.filter((d: string) => d.toLowerCase().indexOf(query.toLowerCase()) > -1);
}
onPick(objectId: number, selectedValue: string) {
this.myObjects.find(x => x.id === objectId).value = selectedValue;
this.performAdditionalLogic();
}