Блок пользовательского интерфейса на AJAX загрузки для Grails
remoteLink используется для вызова обработчика сервера в проекте Grails, как показано ниже. Я могу разместить метод blockUi в onLoading, чтобы сделать удаленный вызов дружественным. Если есть небольшая удаленная ссылка, я могу сделать это для каждой удаленной ссылки. Но если есть много удаленных ссылок, повторять это не очень хорошая практика, как мне кажется.
Я хочу использовать теги GSP. Есть ли какой-либо метод, как перехватчик для события загрузки ajax remoteLink, чтобы сделать это без повторения? Если есть, то будет лучше, если какой-нибудь remoteLink можно будет исключить из blockUi, поместив тег вроде: кроме ='true'
Большое спасибо за помощь!
<g:remoteLink action="show"
id="1"
update="success"
onLoading="blockUi()"
onComplete="hideProgress()">Show Book 1</g:remoteLink>
1 ответ
Вы можете создать свой собственный TagLib
и позвонить remoteLink
с вашим onLoading
по умолчанию.
class AjaxTagLib {
static namespace = "my" //define a namespace to not conflict with g
def remoteLink = { attrs ->
//default onLoading attribute
if(!attrs.onLoading) {
attrs.onLoading = "blockUi()"
}
g.remoteLink(attrs)
}
}
Тогда вы можете использовать это вместо g.remoteLink
:
<my:remoteLink action="show" id="1" update="success">Show Book 1</my:remoteLink>