2013-12-15 3 views
1

позволяет сказать, что у меня есть некоторые данные, как это:Установить простой логический в веточке

answers: [ 
{ 
    answerText: "please", 
    small: false 
}, 
{ 
    answerText: "help", 
    small: true 
}, 
{ 
    answerText: "me", 
    small: false 
} 
], 

и я хочу, чтобы установить логическое that's верно, если есть ответ, где маленькая правда. , и мне нужно использовать его за пределами цикла. Я повторяю ответы.

Я пытаюсь использовать arround и просто не понимаю, я думаю, что моя ближайшая попытка - это sth. как это

{% set zyx = if 'small' in question['answers'] %} 

{% set zyx = 'small' in question['answers'] %} 

{% set zyx = 'small:true' in question['answers'] %} 

{% set zyx = true in question['answers'] %} 

, но все они не работают, как я ожидал

за любую помощь заранее спасибо

ответ

1
{% set smallText = null %} 
{% for answer in questions.answers %} 
    {% if answer.small %} 
     {% set smallText = answer.answerText %} 
    {% endif %} 
{% endfor %} 
{% if smallText is not null %} 
    Small answer: {{ smallText }} 
    ... 
{% endif %} 
+0

спасибо, это хорошо! Я действительно не знаю, как не переопределить его с помощью false снова, но false не является нулевым;) спасибо –

4

Вы не можете использовать операторы в выражении. Удаление if будет делать трюк:

{% set zyx = 'small' in question['answers'] %} 

EDIT

Чтобы проверить, если answer.small является true, использование:

{% set zyx = question['answers']['small'] is true %} 
+0

это всегда возвращает ложь, Ithink потому, что "в" ищет значения, а не ключи? хотя это не правда. –

+0

попробовал много других вещей, но не успел –

+0

да, в поисках значений. Используйте '' small 'in question [' answers ']} | keys', чтобы искать ключи –

Смежные вопросы