Расширение модели продукта в Спартаке - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь расширить модель продукта новым атрибутом, который я создал в -items. xml, но я не могу получить его на фронте Спартака. Я добавил файл product.model.ts со следующим кодом:

import { Product as CxProduct } from '@spartacus/core';

export interface Product extends CxProduct {
  myAttribute: string;
}

И импортировал этот файл в канал, где я использую модель продукта, но он кажется пустым, хотя продукт имеет данные в myAttribute. поле в офисе. Есть ли что-то, что я могу упустить?

Я использую этот атрибут в компоненте product-images.com, который я создал, чтобы переопределить атрибут по умолчанию. Это новый продукт-images.component.ts

import { Component, OnInit } from '@angular/core';
import { CurrentProductService } from '@spartacus/storefront';
import { ProductImagesComponent as SpartacusProductImages } from '@spartacus/storefront'

@Component({
  selector: 'cx-product-images',
  templateUrl: './product-images.component.html',
  styleUrls: ['./product-images.component.scss']
})
export class ProductImagesComponent extends SpartacusProductImages implements OnInit {

  constructor(currentProductService: CurrentProductService) {
    super(currentProductService)
  }

  ngOnInit() {
  }


}

Большое спасибо

1 Ответ

0 голосов
/ 04 мая 2020

Вам нужно явно попросить backend вернуть вам атрибут. Настройте конечную точку product так, чтобы она содержала ?fields= с вашим пользовательским атрибутом. См. Документы: https://sap.github.io/spartacus-docs/connecting-to-other-systems/#configuring -endpoints

Имейте в виду, что вы можете указать различные конфигурации конечной точки области действия для данных продукта - так что вы можете загружать пользовательский атрибут только при необходимости (т.е. это полезно, когда myAttribute не отображается для некоторых представлений, таких как карусель товаров или список товаров). Но так как вы манипулируете данными изображения, я думаю, что вы хотите использовать это свойство везде (поэтому, пожалуйста, используйте область действия, называемую list).

Для получения дополнительной информации см. Документы для конечной точки продукта в области: https://sap.github.io/spartacus-docs/loading-scopes/#using -default-продакт-прицелы . Примечание. При написании этого поста документы для версии Spartacus 2.0 еще не публиковались. В 2.0 свойство конфигурации product_scopes было переименовано в product.

...