Как я могу получить один документ из коллекции, где ion-select перечисляет все документы? - PullRequest
0 голосов
/ 10 мая 2019

Я денормализую данные из некоторой базы данных, чтобы избежать запросов на объединение, поэтому, когда я собираюсь что-то зарегистрировать в коллекции «Pedido», я помещаю данные «Usuario» (который вошел в систему), иданные выбранного «Клиента».Я покажу всю коллекцию 'Cliente' в программе ion-select, чтобы я мог выбрать ее и продолжить, но как я могу получить из нее только выбранный документ?Кроме того, в качестве ошибки бонуса я могу выбрать только первое значение коллекции «Cliente», ion-select не позволит мне выбрать другое.

      private formCriarPedido: FormGroup;
      private clientesCollection: AngularFirestoreCollection<Cliente>;
      private clientes$: Observable<Cliente[]>;

      constructor(
        private fb: FormBuilder,
        public auth: AuthService,
        private toast: ToastService,
        private db: AngularFirestore
      ) {

        this.formCriarPedido = this.fb.group({
          clientePedido: ['', Validators.compose([Validators.required])],
        });

        this.clientesCollection = this.db.collection<Cliente>('cliente');
        this.clientes$ = this.clientesCollection.valueChanges();
      }

      ngOnInit() {
      }

      iniciarPedido() {

      }

      escolheCliente(cliente: Cliente) {

        console.log(cliente);

      }

          <ion-label position="stacked">Cliente</ion-label>

          <ion-select class="selectCliente" (ionChange)="escolheCliente($event)" formControlName="clientePedido">

            <ion-select-option value="{{cliente}}" *ngFor="let cliente of clientes$ | async">{{cliente.razaoSocialCliente}}</ion-select-option>

          </ion-select>

          <div align-self-start ngxErrors="clientePedido">

            <div [ngxError]="['required']" [when]="['touched']">

              <p class="alert-validation">
                É necessário selecionar o Cliente! 
              </p>

            </div>

          </div>

        </ion-item>

1 Ответ

0 голосов
/ 10 мая 2019

Быстро нашли ошибку, как кажется, это ионные 4 смены. Чтобы сделать эту работу по порядку, вы должны изменить эту строку:

        <ion-select-option value="{{cliente}}" *ngFor="let cliente of clientes$ | async">{{cliente.razaoSocialCliente}}</ion-select-option>

до:

        <ion-select-option [value]="cliente" *ngFor="let cliente of clientes$ | async">{{cliente.razaoSocialCliente}}</ion-select-option>

Кредиты https://stackoverflow.com/users/11216133/othmane-daanouni при Передача функции выбора иона в функцию - Ionic 4

...