Primeng Autocomplete - не исправлять значение с помощью реактивной формы в Angular - PullRequest
0 голосов
/ 08 января 2020

У меня последняя версия Angular, и я использую функцию автозаполнения Primeng и пытаюсь исправить значение после поиска результата совпадения с помощью реактивной формы, но это не отражает, ниже мой код:

HTML Код:

<p-autoComplete formControlName="orderId" [suggestions]="orderList"
(completeMethod)="searchOrders($event)" (onSelect)="onOrderChange($event)" filter="label"
field="label" [autoHighlight]="true" [forceSelection]="true" dataKey="value">
</p-autoComplete>

Код TS:

searchOrders(event) {
    this._orderService.getOrderList(event.query).subscribe(
      success => {
        if (success['orders'].length) {
          this.orderList = success['orders']
          this.formGroup.patchValue({ orderId: { value: '6614876352770211840' } })
        }
      },
      error => {
        // handling errors here
      }
    )
  }

У меня есть массив объектов ([{value:'', label: ''}]) in orderList переменная и список правильно отображается там после поиска. onOrderChange метод не влияет на эту логику c, я также отдельно вызывал метод searchOrders, передавая относительный запрос, и после этого исправления значения я пробовал разные способы, но он не работает.

1 Ответ

0 голосов
/ 09 января 2020

Наконец-то, получили решение, это было легко, но неожиданно. Нам нужно исправить поле с объектами key и value. Это необходимо для Autocomplete и Chips Components Primeng для отображения предопределенных значений ({ value: '6614876352770211840', label: 'ORD00459' }). Вот пример:

Код TS:

searchOrders(event) {
    this._orderService.getOrderList(event.query).subscribe(
      success => {
        if (success['orders'].length) {
          this.orderList = success['orders']
          this.formGroup.patchValue({ orderId: { value: '6614876352770211840', label: 'ORD00459' } })
        }
      },
      error => {
        // handling errors here
      }
    )
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...