Vue店面:显示自定义属性筛选器的标签而不是选项id

xqkwcwgp  于 2023-05-18  发布在  Vue.js
关注(0)|答案(2)|浏览(132)

我试图找出从几天如何显示标签的过滤器类别页面。正如文档中提到的,我已经在config.products.defaultFilters[]中添加了属性,过滤器已经开始在那里显示。
我有colorbrand过滤器。对于颜色过滤器,我已经将颜色idMap到config.products.colorMappings中的颜色名称,因此它在那里正确显示。但是对于品牌我也可以做同样的事情,但是这是一个静态的解决方案,所以每次管理员添加新的品牌,我都需要添加它的Map并再次构建店面。
我试着检查他们的论坛,但没有什么有用的。我检查了Vue Storefront vuex catalogcategory-next商店的提示,但没有找到任何相关的东西。

brand_filter下选项的标签应该是可读的,但它显示了brand属性选项的id

des4xlb0

des4xlb01#

好的,在花了几天时间寻找这个问题的解决方案后,我终于从这个answer中得到了提示。
我使用的是主题vsf-capybara,并根据它的指南,安装我生成了一个local.jsongenerate-local-config.js和我合并配置手动从local.jsonconfig/local.json文件。在此之前,主配置文件中没有添加名为brand或color的过滤器。
导致过滤器标签不正确的配置属性是entities.attribute.loadByAttributeMetadata,它被设置为true,我将其更改为false,因为core/module/catalog/CatalogModule有一个操作attribute/list需要被分派以供应用程序使用。因此,如果config/local.json中的entities.attribute.loadByAttributeMetadata设置为true,则不会调度此操作。以下是CatalogModule的摘录:

if (!config.entities.attribute.loadByAttributeMetadata) {
    await store.dispatch('attribute/list', { // loading attributes for application use
      filterValues: uniq([...config.products.defaultFilters, ...config.entities.productListWithChildren.includeFields])
    })
}
ggazkfy8

ggazkfy82#

对我来说,勾选的答案是行不通的。但解决方案是将config/local.json文件中的值entities.attribute.loadByAttributeMetadata更改为true,而不是vue-storefront,而是vue-storefront-api项目。

相关问题