Я пытаюсь использовать OmniFaces для отсрочки сценариев PrimeFaces, как видно из этого answer.Как отложить сценарии PrimeFaces.settings и клиентской стороны с помощью o: deferredScript
Но PrimeFaces вынести встроенный сценарий в голове, как это (сценарий украшен и прокомментирован мной):
<script type="text/javascript">
if(window.PrimeFaces) {
// this line is always rendered in Development mode.
PrimeFaces.settings.projectStage='Development';
// these lines are added if Client Side Validation is enabled.
PrimeFaces.settings.locale='pt_BR';
PrimeFaces.settings.validateEmptyFields=true;
PrimeFaces.settings.considerEmptyStringNull=true;
}
</script>
При запуске приложения, я получаю некоторые JS ошибки (файл и ошибки):
validation.js.xhtml?ln=primefaces&v=5.3:1
Uncaught TypeError: Cannot read property 'en_US' of undefined
beanvalidation.js.xhtml?ln=primefaces&v=5.3:1
Uncaught TypeError: Cannot read property 'en_US' of undefined
produto.xhtml:2
Uncaught TypeError: Cannot set property 'locale' of undefined
Если я ставлю некоторые переменные в primefaces.deferred.js
, как это:
if (!primeFacesLoaded) {
window.PrimeFaces = {
// variables added - begin
settings: {
projectStage: 'Development',
locale: 'pt_BR',
validateEmptyFields: true,
considerEmptyStringNull: true
},
// variables added - end
ab: function() {
defer("ab", arguments);
},
cw: function() {
defer("cw", arguments);
},
focus: function() {
defer("focus", arguments);
}
};
}
Два е Первые ошибки все же происходят, но третья ошибка уходит.
По-видимому, объект PrimeFaces JS не хватает следующими свойствами:
locales: {
// other values...
en_US: {
// other values...
}
},
util: {
// other values...
},
Итак, вопрос: Как правильно перенести эти свойства PrimeFaces сценария?
P.S: Версии: PrimeFaces 5.3, 2.3 OmniFaces, скумбриевидный гидролик сервер (GlassFish) 4.1.1.161
Используя этот сценарий, я до сих пор есть проблемы с локалью и UTIL переменных. Предложение: Чтобы избежать копирования многих переменных, что делать, если мы клонируем все окно .PrimeFaces объект с другой переменной, отложить ab, cw, функции фокусировки и восстановить объект позже? – julianomqs
Я вижу, PrimeFaces имеет эти проверки, жестко закодированные. См. Обновленный ответ. – BalusC
2 вопроса: 1) У меня есть 'scripts.js', который устанавливает значения' PrimeFaces.locales ['pt_BR'] '(в календарь). Должен ли я помещать этот скрипт между 'DeferredPrimeFaces.begin()' и 'DeferredPrimeFaces.apply()'? 2) Я должен указать сценарии для отсрочки на каждой странице, или я могу поместить их в шаблон? – julianomqs