首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在用户完成时调用函数输入文本

在用户完成时调用函数输入文本
EN

Stack Overflow用户
提问于 2017-07-04 14:25:09
回答 1查看 508关注 0票数 0

我打算使用ng2-autocomplete实现一个自动完成的下拉列表。但是我的数据源在远程,并且我在Angular 2服务应用程序中使用服务器查询数据源。

组件视图

代码语言:javascript
复制
<ng2-completer 
      [(ngModel)]="searchStr" 
      [datasource]="dataService" 
      [minSearchLength]="0"  
      (change)='findAddress($event)'>
</ng2-completer>

组件

代码语言:javascript
复制
findAddress($event){
      this.addressCrawlerService.findMap($event.target.value)
          .subscribe(
              res => {
                  let resultArray = res["result"];
                  this.searchData = resultArray;
                  this.dataService = this.completerService.local(this.searchData, 'streetAddress', 'streetAddress');
              },
              error => {
                  console.log(error.json);
              }
          ); 
}

在这里,当值发生变化时,值不会被激发。修复此错误的代码中存在哪些错误。

EN

回答 1

Stack Overflow用户

发布于 2017-07-04 14:43:26

我认为您需要延迟服务呼叫,直到用户停止键入。

为此,您有两个选择:

  1. 使用这里描述的角度方式https://angular.io/guide/http#1-wait-for-the-user-to-stop-typing
  2. Use 'javascript‘方式...请参阅此柱塞示例:

https://embed.plnkr.co/9VYmoGxKO3buc4DmVQgl/

这两种方式的原则是相同的。对于输入的每个字符,两者都设置一个计时器等待,即400ms。如果用户在400ms内键入下一个字符,则已设置的计时器停止,并启动新的计时器。如果400毫秒没有输入,代码就会被执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44898363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档