Angular не может инициализировать переменную - PullRequest
0 голосов
/ 05 октября 2019

У меня есть get метод, который возвращает данные типа ProductModel.

 getProduct(id:number): Observable<ProductModel[]> {

    const url = `${'api/product/getProductById/'}/${id}`;

    return this.http.get<ProductModel[]>(url).pipe(

      catchError(this.handleError('getProduct', []))
    )
  }

Я возвращаю один ProductModel, и нет необходимости иметь список ProductModel. Как это сделать, когда я удаляю [] У меня ошибка? И у меня есть проблема в моем компоненте, я объявил product :ProductModel ;, и когда я возвращаю данные, мой product не определен

this.productService.getProduct(162).subscribe((product) => {
      this.product = product[0];
    console.log(product)
    })

1 Ответ

0 голосов
/ 06 октября 2019

Если ваш API вернет массив с элементом ony, я изменю сервис, используя «map», чтобы вернуть Object

getProduct(id:number): Observable<ProductModel> {
    const url = `${'api/product/getProductById/'}/${id}`;
    return this.http.get<ProductModel[]>(url).pipe(
      map((res:any[])=>res[0]),
      catchError(this.handleError('getProduct', []))
    )
  }

Я не знаю о вашей функции this.handleError, яSupouse вы всегда можете использовать такие как

handleError(function:string:data:any)
{
   if (Array.isArray(data))
   {
       ...data is an array...
   }
   else
   {
       ..data is a object...
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...