0

オートコンプリートが機能しません。最初にドロップダウンが読み込まれ、何かを入力しようとするとフィルタリングされず、ドロップダウンの値がなくなりましたservice.ts

 getUserLocations(UserID: string, allList:string  ) {
        return this._http.get(environment.BASE_API_URL + 'xxxxx/' + ID + '/' + allList)
            .map((response: Response) => response.json())
              .do(data => console.log('locations ' + JSON.stringify(data)))
            .catch(this.handleError);
    }

compnent.ts

        brand: any [];
        filteredBrands: any[];
       GetUserLocations(PNSLUID: string, allList: string) {
                   this._searchService.getUserLocations(ID, allList)
                .subscribe(
                data => {
                    this.brand= data.result.name;//not sure how to bind the id
                },
                error => console.log('GetControls Method: ' + <any>error, 'alert alert-danger'));
        }

   filterBrands(event) {
        this.filteredBrands = [];
        for (let i = 0; i < this.brand.length; i++) {
            let brand = this.brand[i];
            if (brand.toLowerCase().indexOf(event.query.toLowerCase()) == 0) {
                this.filteredBrands.push(brand);
            }
        }
    }

html

<p-autoComplete  [(ngModel)]="brand" [suggestions]="filteredBrands" (completeMethod)="filterBrands($event)" [size]="30"
                                                [minLength]="1" placeholder="Office" [dropdown]="true">
                                    <ng-template let-brand pTemplate="item">
                                        <div class="ui-helper-clearfix" style="border-bottom:1px solid #D5D5D5">

                                            <div style="font-size:18px;float:right;margin:10px 10px 0 0">{{brand}}</div>
                                        </div>
                                    </ng-template>
                                </p-autoComplete>

問題は、オートコンプリート ドロップダウンにデータが入力されていないことです。バインディングに問題があります。

*************************************************アップデート****************************************************** *** 問題: 例: 私のドロップダウンには次の値があります

  1. 地域

  2. 地域b

  3. 地域c

  4. HBVオフィス

  5. ディオフィス

領域のオートコンプリートを入力してもすべての値が表示されますが、領域 b を選択してから b の削除を開始すると、オートコンプリートが機能します。つまり、値を選択した場合にのみ機能しますが、空のテキストから入力を開始しても機能しません

html

 <p-autoComplete name="OfficeList" [(ngModel)]="val" [suggestions]="results" (completeMethod)="search($event)"  field="name" dataKey="id" [dropdown]="true"></p-autoComplete>

インターフェース

export interface IOffices {
    id: number,
    name:string
}

成分

    val: IOffices;
    results: IOffices[];  
    originalResults: IOffices[];

 GetUserLocations(PNSLUID: string, allList: string) {
              this._searchService.getUserLocations(PNSLUID, allList)
            .subscribe(
              data => {
                  this.results = data.result;
                 this.originalResults = data.result; 
          },
          error => console.log('GetControls Method: ' + <any>error, 'alert alert-danger'));
            })
    }

search(event) {
            console.log("result 2 : " + this.originalResults.length.toString());
    console.log("event : " + event.query.toString());

    this.results = this.originalResults;

    this.results = this.results.filter(data => 
       data.name.indexOf(event.query) !== -1);

    }
4

1 に答える 1