Кэшированное автозаполнение по завершении

Я использую автозаполнение простых лиц с атрибутом cache=true. Когда я получаю кешированный ответ от автозаполнения, событие «oncomplete» не будет запущено, потому что запрос ajax не отправляется. Есть ли возможность запуска, если автозаполнение вернуло значение? BR

<p:autoComplete id="#{cc.attrs.id}"
            styleClass="#{cc.attrs.styleClass}" value="#{cc.attrs.value}"
            minQueryLength="#{cc.attrs.minQueryLength}"
            maxResults="#{cc.attrs.maxResults}"
            completeMethod="#{geoCodingBacking.findAddress}"
            placeholder="#{cc.attrs.placeholder}" cache="true"
            queryDelay="#{cc.attrs.queryDelay}"
            forceSelection="#{cc.attrs.forceSelection}" 
            >
            <p:ajax event="query"
                onstart="startLoading()"
                oncomplete="endLoading()" />
        </p:autoComplete>

person DCO    schedule 14.07.2014    source источник


Ответы (1)


Вы можете реализовать прослушиватель для события itemSelect:

<p:ajax event="itemSelect" listener="#{bean.onItemSelect}"/>
person rion18    schedule 14.07.2014
comment
Но событие itemSelect запускается, когда пользователь щелкает элемент из списка. Я хочу иметь событие, когда автозаполнение успешно завершено, поэтому автозаполнение предоставляет список предложений - person DCO; 17.07.2014
comment
Когда вы сказали, что автозаполнение вернуло значение, я подумал, что вы имели в виду выбор элемента, а не результаты вашего запроса. Вы хотите, чтобы onstart и oncomplete javascript вызывались при запросе ваших объектов в autocomplete правильно? - person rion18; 17.07.2014
comment
да, но если вы установите cached=true и автозаполнение возвращает кешированный объект, oncomplete не будет запущен, потому что запрос ajax не отправляется. - person DCO; 18.07.2014