Play framework: как использовать moreStyles и moreScripts

В файле main.html в проекте по умолчанию, созданном Play!, есть эта строка:

#{get 'moreStyles' /}

Я понимаю, что если мне нужно добавить больше стилей, в моем сценарии представления я должен использовать

#{set tag:'value' /}

где tag должно быть moreStyles, но кажется излишним устанавливать значение для полного тега HTML <link>. А что произойдет, если в представление нужно добавить больше стилей или скриптов?

Спасибо!


person Yanick Rochon    schedule 11.03.2011    source источник


Ответы (2)


вы устанавливаете больше стилей с помощью:

#{set 'moreStyles'}
        #{stylesheet 'main.css' /}
#{/set}

как скрипты:

#{set 'moreScripts'}
    #{script 'base64.js'/}
#{/set}
person Peter    schedule 22.03.2011
comment
Я чуть не забыл об этом вопросе. Я нашел похожее решение для группы пользователей, но #{script } и #{stylesheet } не упоминались. :) - person Yanick Rochon; 22.03.2011
comment
Этот пример работает, но хорош только для простого случая. Если вы собираетесь повторно использовать этот установщик и ожидаете, что результаты будут объединены, см. другой ответ, в котором просто используется #set... - person Alastair Brayne; 09.12.2011

простое использование тега #{set} перезапишет предыдущие значения.

это если вы выпускаете

#{set 'moreStyles'}xxx#{/set}

а потом

#{set 'moreStyles'}yyy#{/set}

тогда

#{get 'moreStyles' /}

вернет только yyy

чтобы достичь того, чего вы хотите, вы должны

#{set 'moreStyles'}
    #{get 'moreStyles' /}
    #{stylesheet 'main.css' /}
#{/set}

а затем таблица стилей main.css будет добавлена ​​к предыдущему значению morestyles

В аналогичной ситуации я создал свой собственный тег #{addStyle}.

person opensas    schedule 23.03.2011
comment
ну, у меня не было такой проблемы, но спасибо, что поделились этим. Если я когда-нибудь столкнусь с этой проблемой, я буду знать, что делать. - person Yanick Rochon; 24.03.2011
comment
Просто к вашему сведению, я вырезал и вставил это в свой код, но во всех примерах воспроизведения используется «moreStyles» в верблюжьем регистре, а переменная set чувствительна к регистру, поэтому «morestyles» не работает. Как только я понял, что этот пример работал отлично. - person rancidfishbreath; 11.01.2012
comment
спасибо за комментарий, если вы не зависите от образцов воспроизведения, приведенный выше код будет работать, но во избежание путаницы я его отредактирую... - person opensas; 12.01.2012
comment
Я согласен с вашим комментарием о #{addStyle}. Я написал append.html, чтобы использовать #{append 'moreStyles'}...#{/append}, который содержит: #{set _arg}#{get _arg /}#{ doBody /}#{/набор} - person seePatCode; 15.03.2013