2011-12-29 2 views
2

В моем шаблоне я повторяю список элементов. Есть определенные случаи, когда я хотел бы break; или continue; в этих циклах. Как я могу сделать это на языке шаблона игры?playframework: Шаблонный эквивалент продолжения и разрыва Java?

Я проверил документацию здесь: http://www.playframework.org/documentation/1.0.2.1/tags, но я не могу найти никакой информации о том, как я сломаю или продолжу. Ниже приведены два случая Пример использование:

#{list items:myList as:'my'} 
    #{if my.name == "hello"} 
    //Do something 
    //I'd like to break here. 
    #{/if} 
#{/list} 

также позже в своем коде, у меня есть вложенный список итерация, как так ...

#{list items:item, as:'i'} 
    #{list items:anotherItem, as:'aI'} 
    #{if i.name != aI.name} 
     //Do Something here. 
     //I'd like to continue here. 
    #{/if} 
    #{/list} 
#{/list} 

Продолжает

Просто дополнительные вопрос .. могу ли я сделать что-то со списком вроде .contains();? Кто-нибудь знает о хорошем руководстве для этого языка?

ответ

3

Я думаю, что break и continue не поддерживаются изначально, но вы всегда можете создавать свои собственные теги для обработки этих случаев. Взгляните на http://www.playframework.org/documentation/1.1.1/templates#fasttags.

По умолчанию реализация #list - это GroovyInlineTags # _list - это должно дать вам все, что вам нужно, чтобы настроить его для дополнительных аргументов.

Лично я бы справился с этой логикой на стороне сервера и только перешел в представление, что вы хотите показать. break больше не требуется, и продолжение может быть реализовано как инструкция if-else с использованием существующих тегов.

Что касается методов вызова объектов, конечно. Вы можете использовать, например, # {if myList.contains ('whatever')} или даже поставить туда оператор Groovy elvis для нулевой безопасности, например. # {if myList? .contains ('whatever')}

Кстати, какую версию платформы Play вы используете? 1.0.2 сейчас довольно старый! 1.1.1 - последняя версия ветки 1.1, а 1.2.4 - последняя версия туловища. Также есть Play 2 (http://www.playframework.org/2.0), который хорош для экспериментов, но вы можете некоторое время удерживать его на производстве. Более поздние версии структуры имеют гораздо лучшую документацию. При работе в режиме dev вы также можете получить доступ к документации по версии по адресу http://localhost:9000/@documentation (при необходимости исправьте номер порта).

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