Я хочу включить все с моей главной страницы, кроме одного файла JS .. - PullRequest
0 голосов
/ 29 июля 2011

У меня есть сценарий использования, в котором я хочу включить свой файл main.gsp в мою страницу list.gsp, что легко достигается с помощью

<meta name="layout" content="main"/>

Но проблема в том, что у него есть jQuery 1.6версия, но я хочу альтернативу этому файлу, называемому jquery.js, и я, когда я включаю его, в дополнение к основному макету, он конфликтует и создает проблему .. как

<script type="text/javascript" src="${resource(dir: 'js/jquery', file: 'jquery.js')}"></script>

Вышене работает, так что я подумал, что нужно либо вручную дифференцировать файлы, которые будут включены в мою страницу list.gsp, либо есть способ включить все, что находится на странице main.gsp, кроме этого файла jQuery1.6.js ??

Я открыт для любых других предложений .. Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Поместите в свой main.gsp

${if(!params.jqueryVersion) params.jqueryVersion=''}
<script type="text/javascript" src="${resource(dir: 'js/jquery', file: 'jquery${params.jqueryVersion)}.js')}"></script>

и в свой список верните контроллер

[myInstancesList:list, jqueryVersion:'-1.4.2']
0 голосов
/ 29 июля 2011

Грязным способом может быть помещение импорта скрипта в блок if, который проверяет свойство страницы, и в вашем list.gsp установите это свойство.

В list.gsp:

<body fooProperty="1">

А в main.gsp:

<g:if test="${pageProperty(name:'body.fooProperty) ?: false}">
<%--includes you want for list.gsp here--%>
</g:if>
<g:else>
<%--normal script link -%>
</g:else>

Запускает if / else на каждой загруженной вами странице, но других способов сделать это не существует. Может быть, установить скрытое свойство страницы и написать загрузчик, который переопределяет импорт 1.6 в самом javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...