import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';
@Component({
selector: 'app-demo-async-component',
template: `
Examples
{{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';
}
}