2016-12-21 2 views
4

Я пытаюсь создать массив из списка объектов с использованием жидкого синтаксиса:Как создать массив в цикле for в Liquid?

{% for operation in menuItems %} 
     {% assign words1 = operation.Title | split: '_' %} 
     {% assign controllerName = words1 | first %} 
     {% assign controllersTmp = controllersTmp | append: '_' | append: controllerName %} 
{% endfor %} 

Я хочу разделить controllersTmp, чтобы получить мой массив, но в этот момент мой controllersTmp пуст.

Любая помощь?

ответ

8

Вы можете непосредственно создать новый пустой массив controllers и concat к нему вашему controllerName преобразуется в массив, используя обходной путь split:''. Результатом является массив, без дополнительных манипуляций с строками.

{% assign controllers = '' | split: '' %} 
{% for operation in menuItems %} 
    {% assign controllerName = operation.Title | split: '_' | first | split: '' %} 
    {% assign controllers = controllers | concat: controllerName %} 
{% endfor %} 
+1

этот ответ лучше, спасибо за вашу помощь –

+0

Maroine, был этот рабочий в шаблоне управления API по запросу? Я попытался сделать подобное, но похоже, что 'concat' не может быть использован –

0

вы должны инициализировать вашу переменную controllersTmp:

{% assign controllersTmp = '' %}