Angular Bootstrap Typeahead Сервисная проблема - PullRequest
0 голосов
/ 26 мая 2018

Здравствуйте, я пытаюсь построить Bootstrap Typeahead в угловом формате, где я интегрирую службу для данных JSON для автозаполнения.

Вот мой код заголовка в моем компоненте -

export class NgbdTypeaheadBasic {
public model: any;
searchList: Search[];
constructor(private searchservice: SearchService) { }

ngOnInit() {
  this.searchList = this.searchservice.getSearch();
}

search = (text$: Observable<string>) =>
  text$.pipe(
    debounceTime(200),
    distinctUntilChanged(),
    map(term => term.length < 2 ? []
      : searchList.filter(v => v.searchitem.toLowerCase().indexOf(term.toLowerCase()) > -1).slice(0, 10))
  );

 }

Вот мой блок ввода -

<input type="search" [(ngModel)]="model" [ngbTypeahead]="search">

Вот мой сервисный код -

import { Injectable } from '@angular/core';
import { Search } from '../data/search';
import { SEARCH } from '../data/searchdata';

@Injectable()
export class SearchService {

  constructor() { }

  getSearch(): Search[]{
    return SEARCH;
  }
}

Вот мой пример данных -

search.ts

export class Search{
 id: number;
 searchitem: string;
 url: string;
}

searchdata.ts -

    import { Search } from './search';

export const SEARCH: Search[] = [
    {
        id:1,
        searchitem: 'jeans',
        url: 'https://www.google.co.in',
    },
    {
        id:2,
        searchitem: 'Shirts',
        url: 'https://www.facebook.com',
    }
];

Я получаю сообщение об ошибке -

error TS2304: Cannot find name 'searchList'.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 26 мая 2018

Я думаю, вы должны использовать this.searchList

this.searchList.filter(v => v.searchitem.toLowerCase()

...