import {Component, ElementRef, OnInit, ViewChild} from '@angular/core'; @Component({ selector: 'app-demo-async-component', template: `
Examples
AsyncComplete
basic
  • basic.html
  • basic.ts
{{html_html1}}
{{ts_ts1}}
`, styleUrls: [] }) export class DemoAsyncCompleteComponent implements OnInit { options = { asyncFilter: this.myFilter, asyncSpace: 100 // 文本变化请求异步过滤方法时间间隔,默认300ms }; source = [{ title: 'a' }, { title: 'b' }]; html_html1 = ``; ts_ts1 = `options = { asyncFilter: this.myFilter, asyncSpace: 100 // 文本变化请求异步过滤方法时间间隔,默认300ms }; source = [{ title: 'a' }, { title: 'b' }]; myFilter(text): Promise { // 返回promise对象 return new Promise(resolve => { if (text) { // 用户有输入搜索值 // return [{title: 1}]; setTimeout(() => { resolve([]); }, 1000); } else if (text === '') { // 用户删除了搜索值 // return [{title: 1}, {title: 2}]; resolve([{title: 1}, {title: 2}]); } else { // undefined,第一次点击搜索框 // return this.source; resolve(this.source); } }); } selectItem(ev: any) { console.log(ev, 'selectItem'); }`; constructor() { } ngOnInit() { } myFilter(text): Promise { // 返回promise对象 return new Promise(resolve => { if (text) { // 用户有输入搜索值 // return [{title: 1}]; setTimeout(() => { resolve([]); }, 1000); } else if (text === '') { // 用户删除了搜索值 // return [{title: 1}, {title: 2}]; resolve([{title: 1}, {title: 2}]); } else { // undefined,第一次点击搜索框 // return this.source; resolve(this.source); } }); } selectItem(ev: any) { console.log(ev, 'selectItem'); } // 以下是demo内容,不用关注 toggleBasicContent(ev: any, target: any) { if (!target.style.display || target.style.display === 'none') { target.style.display = 'block'; ev.target.classList.add('active'); } else { target.style.display = 'none'; ev.target.classList.remove('active'); } } selectBasicTab(ev: any, showTarget: any, hideTarget: any) { const children = ev.target.parentElement.children; for (let i = 0; i < children.length; i++) { children[i].classList.remove('active'); } ev.target.classList.add('active'); showTarget.style.display = 'block'; hideTarget.style.display = 'none'; } }