Ширина экрана Grails GSP
Мне нужно проверить размер экрана, чтобы изменить компонент. Не зная лучшего способа, я пытаюсь использовать JavaScript в
<g:if test="${javascript($(window).width() > 768)}">
//COMPONENT
</g:if>
<g:else>
//OTHER COMPONENT
</g:else>
Кто-нибудь может помочь мне сказать, лучший способ решить эту проблему?
Спасибо
2 ответа
Не зная, что COMPONENT
в твоем примере сложно предложить солидное решение.
Однако основная проблема, с которой вы сталкиваетесь, заключается в том, что вы пытаетесь смешать оценку на стороне сервера и на стороне клиента, что вы не можете сделать. GSP оценивается на уровне сервера и не имеет доступа к DOM браузера, чтобы получить такие вещи, как window.width
,
Одним из возможных решений является подача window.width
с запросом к GSP в качестве переменной запроса, чтобы вы могли оценить это с помощью GSP.
@ Джошуа прав, вы смешиваете и сопоставляете код клиента и сервера. Вы можете использовать плагин https://github.com/mathifonseca/grails-browser-detection который является хорошей оболочкой для httprequest, чтобы вы могли проверить, общаетесь ли вы с настольным или мобильным браузером. Но обычно это делается с помощью таблицы стилей (@see: http://www.w3schools.com/html/html_responsive.asp).