Получить данные из идентификатора и отобразить их в таблице Angular

avatar
SikeYouTh
8 августа 2021 в 22:28
342
2
0

Итак, у меня есть таблица с некоторыми продуктами, таблица имеет только несколько атрибутов и есть кнопка для полного просмотра. Теперь то, что я хочу сделать, это при нажатии этой кнопки отобразить диалоговое окно, в котором отображается та же таблица, но только тот конкретный продукт, который был нажат, поэтому только сведения об этом продукте. Вот функция из основной таблицы. Я использую простую таблицу, а не таблицу матов, и проблема в том, что когда я пытаюсь использовать функцию для получения этих данных в таблице, это дает мне некоторую ошибку. Функция также ниже. Будем рады любой помощи.

getFullDetails(pk) {
    const dialogRef=this.dialog.open(ProductsListComponent, {
      width:'700px',
      data:{
        id:pk,
      }
    })

В ProductListComponent.ts:

    const id = this.data.id;
    if(id) {
      this.ordersService.getByID(id)
        .pipe(first())
        .subscribe(response => this.productList=response);

Ошибки, которые =response выдает мне: 'Type 'ProductData' is not assignable to type 'ProductData[] и Type 'Product Data' is missing the following properties from type 'ProductData[]': length, pop, push, concat, and 26 more

Источник

Ответы (2)

avatar
vsnikhilvs
9 августа 2021 в 02:00
0

Если вы используете одну и ту же переменную для перечисления и отображения отдельных элементов, может возникнуть проблема. Поскольку Typescript ожидает массив типа ProductData.

avatar
Guerric P
8 августа 2021 в 22:32
0

Это означает, что productList, вероятно, объявлено так:

productList: ProductData[];

Хотя вы на самом деле хотите:

product: ProductData;

При отображении сведений об одном продукте.

const id = this.data.id;
if(id) {
  this.ordersService.getByID(id)
    .pipe(first())
    .subscribe(response => this.product = response);
SikeYouTh
8 августа 2021 в 22:39
0

Попался, гм, это имеет смысл, но когда я иду и меняю его на своем ngIf* в таблице, я получаю эту ошибку Type ProductData is not assignable to type (ProductData & NgIterable<T>) | undefined | null

Talha Akca
9 августа 2021 в 08:19
0

вы пытаетесь повторить productData с помощью ngFor?