Элементы ListView отображаются как [объектный объект] Массив в массиве

У меня есть вопрос о моем коде. У меня есть этот JSON:

тележка

[
  {
    "_id": "5d2c9123fc70b57e44ec7924",
    "userid": "11E76234942299FCC13FFA163EDC2079",
    "dateCreated": "2019-07-15T14:43:47.282Z",
    "deleted": 0,
    "purchased": 0,
    "products": [
      {
        "productID": "2",
        "price": "100",
        "quantiy": "3"
      },
      {
        "productID": "3",
        "price": "100",
        "quantiy": "1"
      },
      {
        "productID": "14",
        "price": "100",
        "quantiy": "1"
      }
    ]
  }
]

Я получаю JSON из этой функции:

getcart() {
  this.ws.getCart().subscribe(
    cart => {
      this.cart = cart;
      console.info('cart', cart)
    },
    err => console.error('error', err),
    () => console.info('error')
  );
}

Теперь я хочу показать products в представлении, для этого я написал этот код в html:

<ListView row = "1" class = "list-group" [items] = "cart" style = "height:1250px">
    <ng-template let-shop = "item">
        <FlexboxLayout flexDirection = "row" class = "list-group-item">
            <StackLayout height = "100%">
                <Label [text] = "shop._id"></Label>
                <Label [text] = "shop.userid"></Label>
                <Label [text] = "shop?.products"></Label>
            </StackLayout>
        </FlexboxLayout>
    </ng-template>
</ListView>

Вид, который я получаю:

Элементы ListView отображаются как [объектный объект] Массив в массиве

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
89
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Products — это тоже массив, его нужно перебирать. Попробуйте что-то вроде

<Label *ngFor = "let product of shop.products" [text] = "[product.id, product.userid, product.quantity].join()"></Label>

Попробуйте это: -

 <ListView [items] = "items" class = "list-group">
    <ng-template let-shop = "item" let-i = "index">
        <FlexboxLayout flexDirection = "row" class = "list-group-item">
            <StackLayout orientation = "horizontal">
                <Label [text] = "shop._id" marginRight = "5" style = "color:red"></Label>
                <Label text = "->" style = "color:#000000"></Label>
                <Label *ngFor = "let product of shop.products" textWrap = "true" text = "{{ product.productID +'\n'+ product.price +'\n'+ product.quantiy }}"></Label>
            </StackLayout>
        </FlexboxLayout>
    </ng-template>
</ListView>

Другие вопросы по теме