Передача дополнительного параметра в функцию f: ajax onevent - программирование
Подтвердить что ты не робот

Передача дополнительного параметра в функцию f: ajax onevent

В моем проекте 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 я не могу восстановить его через единственный заданный параметр.

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

4b9b3361

Ответ 1

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

<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.
}