Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.03.2018, 17:43
Интересующийся
Отправить личное сообщение для ar4ipers Посмотреть профиль Найти все сообщения от ar4ipers
 
Регистрация: 26.03.2018
Сообщений: 25

Бесконечный скроллинг в real time поисковике (angular)
Здравствуйте, пытаюсь сделать бесконечный скролл, работаю с апишкой (https://developers.giphy.com/docs/), вывожу гифкки по запросу, установил директиву https://www.npmjs.com/package/ngx-infinite-scroll но чет все безуспешно, как я понял мне как только скролл окажется на новом месте, необходимо менять offset в строке запроса, вот код, может знает где я косячу, offset меняется, но запрос с offset-ом новым не отправляет??
Компонент:
export class AppComponent {
  results: Object;
  searchTerm$ = new Subject<string>();
  collection = [];
  offset = 0;
  constructor(private gifService: GifService) {
    this.appendItems(this.offset);
  }

  addItems(endIndex) {
    this.gifService.search(this.searchTerm$, endIndex)
      .subscribe(data => {
        this.collection.push(data);
      });
  }

  appendItems(endIndex) {
    this.addItems(endIndex);
  }

  onScrollDown(ev) {
    this.offset += 20;
    this.appendItems(this.offset);
  }

}

Сервис:
export class GifService {

  constructor(private http: HttpClient) { }

  search(searchTerms: Observable<string>, offset) {
    return searchTerms.debounceTime(500)
      .distinctUntilChanged()
      .switchMap(searchTerm => this.searchEntries(searchTerm, offset));
  }
  searchEntries(searchTerm, offset) {
    return this.http
      .get('http://api.giphy.com/v1/gifs/search?api_key=dc6zaTOxFJmzC&q=' + searchTerm + '&offset=' + offset);      
  }
}
Ответить с цитированием
  #2 (permalink)  
Старый 30.03.2018, 20:18
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

ar4ipers,
Кажется, что не хватает инжекта сервиса ChangeDetectorRef и вызова метода cd.markForCheck() внутри subscribe. Но без запускаемого примера не разобраться.
Ответить с цитированием
  #3 (permalink)  
Старый 30.03.2018, 20:33
Интересующийся
Отправить личное сообщение для ar4ipers Посмотреть профиль Найти все сообщения от ar4ipers
 
Регистрация: 26.03.2018
Сообщений: 25

Спасибо, понял куда копать)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто делал real time отображение пользователей на карте ? evgeniy123 Элементы интерфейса 0 06.11.2017 14:03
Ищу Senior Frontend (React, Angular), Москва, 140 - 180 000 gross, full time офис. Ekaterina Polyakova Работа 0 11.08.2016 19:07
Real time update данных из базы simpli AJAX и COMET 1 12.07.2016 15:47
Pullet , pushlet php chat real time. Rzaxan AJAX и COMET 0 12.05.2015 14:41
Ищем Back-end разработчика (Node.js + Angular) на full time (СПб) JSS Работа 2 11.09.2014 20:56