Используйте уникальный ключ firebase для значения ng-select - PullRequest
0 голосов
/ 10 ноября 2019

Угловой: 8.2.12

Что я хочу сделать: Форма, где пользователи создают новый продукт и выбирают для него упаковочные продукты (документы в другой коллекции). Эти упаковочные продукты могут измениться (например, цена), поэтому я хочу связать их с помощью уникальной ключевой базы данных, созданной для этих документов.

Мой HTML:

<ng-select [items]="packagingProducts | async"
  bindLabel="title"
  placeholder="Select item"
  appendTo="body"
  multiple="true"
  [(ngModel)]="selectedPackaging"
  formControlName="packaging"
  bindValue="key">
</ng-select>

Как вы можете видеть, я пытаюсь сохранить уникальную ключевую базу данных, созданную для документа, с помощью bindValue = "key", что, как мне кажется, неверно, поскольку оно хранится вFirebase как "ноль".

Элементы в моем component.ts

packagingProducts = this.db.collection('packaging').snapshotChanges();

Похоже, что я могу использовать все в документе (например, заголовок), но я не знаю, как я могу использовать уникальный ключ firebase (например,fBcRUsbEl2Xxka5MKkHu).

1 Ответ

0 голосов
/ 12 ноября 2019

Хорошо, я думаю, что нашел правильное решение. Наткнулся на это здесь: https://javebratt.com/angularfire-idfield/

Получение предметов для моего ng-select:

packagingProducts = this.db.collection('packaging').valueChanges({ idField: 'packagingproductId' });

Мой HTML:

<ng-select [items]="packagingProducts | async"
  bindLabel="title"
  bindValue="packagingproductId"
  placeholder="Select item"
  appendTo="body"
  multiple="true"
  [(ngModel)]="selectedPackaging"
  formControlName="packaging">
</ng-select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...