Nano Hash - криптовалюты, майнинг, программирование

Материал 2 - автозаполнение не показывает параметры

Я пытаюсь реализовать md-autocomplete из material-2 в angular. Предполагается, что когда пользователь начнет печатать, он сделает вызов http для получения данных и отобразит их в параметрах. Я могу совершать http-вызовы, но по какой-то причине они не отображаются в options.

HTML :

<md-input-container>
  <input mdInput placeholder="Search drug" [mdAutocomplete]="auto" [formControl]="drug" showPanel="false">
</md-input-container>

<md-autocomplete #auto="mdAutocomplete" [displayWith]="displayFn">

  <md-option *ngFor="let drug of filteredDrugs | async" [value]="drug.drugname">
    {{ drug.drugname}}
  </md-option>
</md-autocomplete>

ТС :

export class DialogAutoComplete {
  drug: FormControl;
  drugList = [];
  filteredDrugs: any;

  constructor(public dialogRef: MdDialogRef<DialogAutoComplete>, private getData: GetData) {
    this.drug = new FormControl();
    //this.filteredDrugs = 
    this.filteredDrugs = this.drug.valueChanges.startWith(null)
      .map(drugname => {

        return Array.of(this.getDrugs(drugname)) || [{}];
      });


  }
  getDrugs(val: string) {
    console.log("filterdrugs is called ", val);
    return val ?
      // this.drugList.filter(option => option)
      this.getData.getDataForAutoComplete(val).subscribe(
        (response: Response) => { console.log(response); return response || []; },
        (err) => console.log(err)

      )
      : [{ drugname: "No Such drug found" }];
  }
  displayFn(drug) {
    console.log("displayfn => ", drug);
    return drug == null ? drug : drug.drugname;
  }
}

Ниже приведен ответ на вызов http.

введите здесь описание изображения

Демонстрация plunker с другим вызовом API, но похожим ответом и настройкой. планкер

Цените помощь.


  • Плункер был бы очень полезен для диагностики и решения проблемы :) 02.08.2017
  • http вызов находится в локальной среде.. он не будет работать в plunker, так как для этого потребуется https. 02.08.2017
  • @BhavikPatel, вы можете создать фиктивный файл json и вызвать HTTP-вызов. Используйте этот демо-плункер из этого post 02.08.2017
  • ок, спасибо, попробую 02.08.2017
  • добавил плунжер. Благодарность 02.08.2017
  • Я вижу таблицу и не вижу кода, подобного приведенному выше, в плункере, он говорит, что последнее обновление 8 дней назад 02.08.2017
  • позвольте мне проверить это 02.08.2017
  • попробуйте сейчас, пожалуйста. я отредактировал ссылку 02.08.2017

Ответы:


1

Сделайте filteredDrugs наблюдаемым, который получает данные из любой службы (HttpService) в нужном вам формате.

https://blog.bouzekri.net/2016-05-15-angular2-rxjs-simple-paginated-list-with-search-field

Async, как определено вами, *ngFor="let drug of filteredDrugs | async" помогает принимать значение filterDrugs во время выполнения, и, следовательно, filteredDrugs должен быть Observable.

Полезная ссылка : руководство по автозаполнению

02.08.2017
  • Спасибо за ваш вклад. Я пробовал это, но это не сработало. 02.08.2017
  • Та же концепция объясняется здесь: medium.com/@nacimidjakirene/ 03.08.2017
  • ссылка вроде помогла мне. Спасибо. 03.08.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..