Передача дополнительного параметра в функцию f: ajax onevent - PullRequest
19 голосов
/ 30 января 2012

В моем проекте JSF 2.0 JBoss AS 7 ) я хотел бы, чтобы на моих отправленных формах ajax отображалось небольшое состояние значка, запускаемое на начальной и полной фазах, чтобы конечный пользователь знает, что что-то еще происходит.

primefaces p:ajaxStatus здесь бесполезен, так как я хотел бы, чтобы на моей странице было много разных значков.

Я нашел немного решения в этом вопросе: « Как показать разные состояния AJAX на одном входе? », но у меня все еще есть проблема: для того, чтобы сделать мою функцию JavaScript многоразовой, мне нужно предоставить дополнительный параметр для вызова.

Я сделал что-то вроде этого:

<h:commandLink value="do something boy!">
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}"
        onevent="showProgress" />
    <f:param name="extraParam" value="extraValue" />
</h:commandLink>

и я вижу параметр "extraParam", отправленный на сервер через запрос, но в моем методе javascript showProgress я не могу восстановить его только с помощью данного заданного параметра.

Итак, мои вопросы: могу ли я предоставить своему методу f:ajax onevent javascript дополнительный параметр через f:param (или, может быть, f:attribute, или что-нибудь еще)?

1 Ответ

43 голосов
/ 30 января 2012

Оберните его в анонимную функцию, в которой вы передадите его в качестве дополнительного аргумента.

<h:commandLink value="do something boy!">
    <f:ajax render="@form" execute="@form" listener="#{myBean.doStuff}"
        onevent="function(data) { showProgress(data, 'extraValue') }" />
</h:commandLink>

с

function showProgress(data, extraParam) {
    // Use "data" argument the usual way.
    // The "extraParam" argument will contain "extraValue" in above example.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...