Angular 2/4 自动完成搜索框

标签 angular angular2-routing angular2-template angular2-forms angular4-forms

如何在 angular2/4 中创建下拉建议搜索框。在我的代码中输入搜索内容并单击搜索按钮,详细信息将使用下面的代码显示。但是我在尝试在文本框中输入时需要显示建议详细信息。与自动完成相同(在搜索过程中,将显示“键入时”建议。) (我看到很多人问同样的问题,但没有答案)

像这样

O
OR
ORA
ORANG
ORANGE

Component.HTML

<form role="form">
        <div class="row">
            <div class="form-group">
                <div class="input-group">
                    <input name="search" 
                        class="form-control" 
                        type="text" 
                        placeholder="Search" 
                        required="" [(ngModel)]='searchcontent'>
                    <span class="input-group-btn">
                        <button 
                            class="btn btn-success ProductSearchBtn" 
                                type="button" 
                            (click)='FetchItemDetailsSearch(searchcontent)'>
                                <i class="glyphicon glyphicon-search" 
                                    aria-hidden="true"></i>
                                <span style="margin-left:10px;">Search</span>
                        </button>
                    </span>
              </form>

(And here i use a Scroll event in search)

 <section class="CommonsubWhiteBg" 
 style='height:850px;overflow-y:scroll; overflow-x:hidden' 
 (scroll)="onScroll($event)">
    <ng-container *ngFor="let item of itemdetails;">
        <article class="row" style="margin:0px;">
            <div class="col-md-12 col-sm-12 col-xs-12 EnquiryMore">
                <a [routerLink]="['/productdetails',item.ItemID]">
                    <h5>{{item.ItemCode + ' - ' + item.ItemDescription}}</h5>
                </a>
            </div>
        </article>
    </ng-container>
    <ng-container *ngIf="!itemdetails" style="margin:0px;">
        <article class="col-md-12">
            <h3>Loading data...</h3>
        </article>
    </ng-container>
    <ng-container *ngIf="itemdetails&&itemdetails.length==0" 
        class="ItemNotfoundArea row" style="margin:0px;">
        <article class="col-md-12">
            <h1>Sorry</h1>
            <p>Item Not Found</p>
        </article>
    </ng-container>
</section>

组件.TS

FetchItemDetailsSearch(itemcodeordesc: string): void {
this.pageIndex = 1;
this.searchflag = 1;
if (itemcodeordesc.length > 0)
    this.searchcontent = itemcodeordesc;
else {
    itemcodeordesc = undefined
    this.searchcontent = itemcodeordesc;
}
this.prevScrollPosition = 0;        
this._enqService
    .FetchItemDetailsSearch(this.searchcontent, this.pageIndex)
        .subscribe(itemsData => this.itemdetails = itemsData,
            error => {
                console.error(error);
                this.statusMessage = 
                    "Problem with the service.Please try again after sometime";
            }
        );
    }

service.ts

 FetchItemDetailsSearch(itemcodeordesc: string, pageIndex: number): 
      Observable<IEnquiryDetails[]> {
        return this._http.get('http://localhost:1234/api/enquirydetails/', 
            { params: 
                { itemcodeordesc: itemcodeordesc, 
                  pageIndex: pageIndex } 
            })
        .map((response: Response) => <IEnquiryDetails[]>response.json())
        .catch(this.handleError)
    }

最佳答案

试试这个:

<input name="search" 
       class="form-control" 
       type="text" 
       placeholder="Search" 
       (keyup)="FetchItemDetailsSearch(searchcontent)" 
       [(ngModel)]="searchcontent">

关于Angular 2/4 自动完成搜索框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51166932/

相关文章:

angular - 提供的参数与调用目标的任何签名都不匹配 - typescript - header 组件

angular - 如何在不将所有代码更改为 Promise 的情况下等待 rxjs Observable

angular - 如果表单脏,则阻止路由 [Angular 2]

angular - 我可以为angular2中的一个组件添加两个模板吗?

angular - 在 Angular 2 模板中使用普通 POST 表单会导致 : "Template parse errors: No provider for ControlContainer"

animation - 基于 Angular2 Animate 的动画后立即返回初始状态,以便能够多次运行动画

angular - 'stream' 的所有声明必须具有相同的修饰符 api-ai-javascript - Dialogflow

Angular 导航强制新组件

angular - 在 Angular 2 中加载延迟加载模块时显示事件指示器

带有字符串变量的 Angular 2 动态模板 url?