Проверьте наличие css-класса в файле twig, который отлично работает на vue.js

#javascript #php #vue.js #twig #drupal-8

#javascript #php #vue.js #веточка #drupal-8

Вопрос:

Я в основном разрабатываю файл twig, я очень новичок в drupal 8

Итак, ранее у меня был файл Vue, в котором у меня есть этот фрагмент кода

 <div class="dropdown-menu":aria-labelledby="menu.class" v-if="menu.class.includes('dropdown')">
 

Где menu.class является массивом элементов

Эта строка будет выполняться, только если menu.class включает в себя раскрывающийся список стилей, который работает абсолютно нормально.

Теперь я копирую то же самое в twig fine и добавил этот код

 {% if menu.class.hasClass('dropdown') %}
                
 <div class="dropdown-menu" aria-labelledby="{{ menu.class }}">
 </div>

{% endif %}
 

Вот массив меню

 Array ( 
[0] => Array
        
        ( [title] => Home [path] => / 
        [class] => no-break-class )
        
[2] => Array
    (
        [title] => CFO
        [path] => 
        [class] => dropdown-two-col
        [children] => Array )
    )
 

Но код не входит в цикл. Есть ли какой-либо другой синтаксис для этого. Любая помощь приветствуется

Ответ №1:

Я не думаю, что twig распознает ваше menu.class.hasClass (‘выпадающий список’), вы можете попробовать сбросить эту переменную, чтобы узнать, существует ли она. Если вы хотите проверить, существует ли значение в массиве twig:

 {% if 'dropdown' in menu.class %}
 

Чтобы проверить, существует ли ключ:

 {% if 'dropdown' in menu.class|keys %}
 

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

1. Я пробовал, {% if 'dropdown' in menu.class %} но не работает

2. Можете ли вы опубликовать свой массив menu.class здесь ?

3. В вашем случае вам нужно выполнить цикл по массиву, чтобы определить, содержит ли ваш массив значение «выпадающий список», для этого у twig есть цикл for. Вы можете взглянуть twig.symfony.com/doc/3.x/tags/for.html#adding-a-condition . Другой метод заключается в написании пользовательского фильтра twig для обработки вашего бизнеса, это документ для Symfony, но вы можете взглянуть, чтобы использовать его в вашей ситуации. symfony.com/doc/current/templating/twig_extension.html