Angular2:如何将选定项目从 HTML 数据列表元素传递回组件?
Posted
技术标签:
【中文标题】Angular2:如何将选定项目从 HTML 数据列表元素传递回组件?【英文标题】:Angular2: How do you pass a selected item from a HTML datalist element back to the component? 【发布时间】:2017-01-07 21:35:03 【问题描述】:我有一个简单的组件,其中包括一个用于创建下拉框的组件。此列表填充了来自 Web API 调用的结果。出于显示目的,我只使用项目的两个字段。但是,一旦选择了一个元素,我就需要对所有其他字段进行处理。如何将整个元素传递回组件?
非常感谢任何帮助。
<h1>Get Locations</h1>
<div>
<div>
<input list="browsers" name="browser" #term (keyup)="search(term.value)">
<datalist id="browsers">
<option *ngFor="let item of items | async" >
item.code + " " + item.description
</option>
</datalist>
</div>
<input type="submit" value="Click" (click)="onSelect(item)" />
</div>
组件代码如下:
import Component, OnInit from '@angular/core';
import Observable from 'rxjs/Observable';
import Subject from 'rxjs/Subject';
import LocationService from './location.service';
import Location from './location.component';
import './rxjs-operators';
@Component(
selector: 'lesson-08',
templateUrl: './views/lesson08.html',
providers: [LocationService]
)
export class Lesson08 implements OnInit
constructor(private locationService: LocationService)
aLoc: Location;
ngOnInit()
this.aLoc = new Location();
errorMessage: string;
locations: Location[];
mode = 'Observable';
displayValue: string;
private searchTermStream = new Subject<string>();
search(term: string)
this.searchTermStream.next(term);
onSelect(item: Location)
// do stuff with this location
items: Observable<Location[]> = this.searchTermStream
.debounceTime(300)
.distinctUntilChanged()
.switchMap((term: string) => this.locationService.search(term));
【问题讨论】:
如果用户没有从数据列表中选择一个项目,而是键入他们自己的输入怎么办?我认为您基本上有两种选择,将数据列表结果映射到组件中的地图中,然后根据用户输入查找原始对象,或者在用户输入完成后进行第二次搜索 在这种情况下不允许输入他们自己的输入。嗯,这就是意图。额外的查找正是我想要避免的。 Web API 已经返回了一种 Location 类型,它具有我需要的所有数据属性。您能否澄清“将数据列表结果映射到地图”的意思?谢谢 当查询数据以数组形式返回时,将其映射到由显示字符串键入的对象中。示例var m=; arrayData.forEach (d=>m[keyOf (d)]=d);
我也面临同样的情况.....
【参考方案1】:
调用该方法的 (click) 事件应该在选择的选项上。您声明的“项目”仅在 *ngFor 的范围内是已知的,因此在其子级的范围内也是如此。你声明的级别太高了。
【讨论】:
以上是关于Angular2:如何将选定项目从 HTML 数据列表元素传递回组件?的主要内容,如果未能解决你的问题,请参考以下文章