参考资料:随笔记录(一) ionic里集成H5下拉框输入过滤
一、材料:
利用Html5的: input + datalist 标签
二、html
<div #pointNoItem class="item item-block item-md item-input" >
<div class="item-inner">
<div class="input-wrapper">
<ion-label>监控点</ion-label>
<input [(ngModel)]="pointNo" type="text" list="ide" class="text-input text-input-md" (blur)="blurInput()" (focus)="focusInput()"/>
<datalist id="ide">
<option *ngFor="let item of pointList" value="{{item.PointNo}}">
{{item.PointNo}}
</option>
</datalist>
</div>
</div>
<div class="button-effect"></div>
</div>
想用这样做
<ion-item>
<ion-label>监控点</ion-label>
<input [(ngModel)]="pointNo" type="text" />
....
</ion-item>
发现Input 在 ion-item中不生效,最终用上面的方法,用div包起来
三、TS / JS
// 获取组件元素(Html的#pointNoItem)的实例引用
@ViewChild('pointNoItem') pointNoItemRef: any;
// 失去焦点 (移除类)
private blurInput() {
this.pointNoItemRef.nativeElement.classList.remove("input-has-focus", "item-input-has-focus");
}
// 获得焦点 (添加类)
private focusInput() {
this.pointNoItemRef.nativeElement.classList.add("input-has-focus", "item-input-has-focus");
}
四、效果