Передайте строку как имя переменной для l oop с помощью nunjucks - PullRequest
1 голос
/ 16 июня 2020

У меня разные сайты с разными именами сайтов, и я пытаюсь получить правильный массив на каждом сайте. Итак, в основном я хочу динамически передать имя переменной для l oop.

{% set sitename = "user" %}
{% set blockRef = sitename + 'Blocks' %} //result should be userBlocks

{% set userBlocks = [ 'chats', 'profile', 'settings' ] %}
{% set adminBlocks = [ 'chats', 'archive', 'profile', 'settings' ] %}


{% for blockName in blockRef %}

  //user values from userBlocks array here

{% endfor %}

Однако переданное имя интерпретируется как текст и не относится к данному массиву. Есть ли способ сделать мой код динамическим c?

1 Ответ

0 голосов
/ 16 июня 2020
{% set sitename = "user" %}
{% set userBlocks = [ 'chats', 'profile', 'settings' ] %}
{% set adminBlocks = [ 'chats', 'archive', 'profile', 'settings' ] %}
{% set blocks = userBlocks if sitename == 'user' else adminBlocks %}

{% for blockName in blocks %}
  //user values from userBlocks array here
{% endfor %}
...