есть ли способ вывести определенную часть массива в зависимости от страны пользователя?

#handlebars.js #bigcommerce #handlebarshelper #stencil-component

Вопрос:

Я пытаюсь получить значения name: и value: в зависимости от кода страны пользователя. Таким образом, пример расположения пользователей — «DE», он должен выводить:

TRS_TITLE_DE

Гарри Поттер Тайная Комната I Жесткий Чехол С Задней Крышкой Совместим С Apple iPhone 12

Это массив:

 {
          "id":3,
          "name":"TRS_TITLE_DE",
          "value":"Harry Potter Chamber Of Secrets I Hard Back Case Compatible With Apple iPhone 12"
       },
       {
          "id":4,
          "name":"TRS_TITLE_FR",
          "value":"Harry Potter Chamber Of Secrets I Hard Back Case Compatible With Apple iPhone 12"
       },
       {
          "id":5,
          "name":"TRS_TITLE_IT",
          "value":"Harry Potter Chamber Of Secrets I Hard Back Case Compatible With Apple iPhone 12"
       },
       {
          "id":6,
          "name":"TRS_TITLE_US",
          "value":"Harry Potter Chamber Of Secrets I Hard Back Case Compatible With Apple iPhone 12"
       },
 

Это то, что я пробовал:

 {{#if settings.country_code "==" "DE"}}
  <h1>
    {{itemAt product.custom_fields 2}}    
  </h1>      
{{else}}
    <h1>It's not there</h1>
{{/if}}
 

Комментарии:

1. Это возможно, но, возможно, имело бы больше смысла использовать объект вместо массива, чтобы вы могли выполнить поиск, подобный title[countryCode] .

Ответ №1:

Предполагая, что вы ввели коды стран в пользовательские поля точно так, как они будут отображаться в настройках, следующее должно помочь:

 {{#each product.custom_fields}}
    {{#contains name ../settings.country_code}}
        <h1>{{{value}}}</h1>
    {{/contains}}
{{/each}}