我想知道当无效的widgetvar传递到primefaces时会发生什么。我知道它会导致问题,但我想知道是否存在已定义的行为/预期结果。
一个简单的例子:说我们有一个对话框:
<p:dialog widgetVar="dialogVar" header="Test">
<h:form>
<h:outputText value="Test"/>
<p:commandButton value="Close Dialog" onclick="PF('badInput').hide();" immediate="true"/>
</h:form>
</p:dialog>
单击“关闭对话框”按钮时,Primefaces会做什么? (假设没有其他对象将'badInput'作为widgetvar)
答案 0 :(得分:2)
使用不正确的widget var时,PrimeFaces不会“执行”任何操作。 var objContainPeram1 = { peram1: peram1 }
Function (objContainPeram1) {
objContainPeram1.peram1 = objContainPeram1.peram1 + 5
}
将返回PF('badInput')
,这会导致undefined
失败。这是纯JavaScript,与PrimeFaces无关。当您的浏览器遇到JavaScript错误时,JavaScript执行就会停止。因此,您最好确保您的小部件存在或首先检查它。
您只需检查.hide()
:
undefined
或使用function hideDialog(widgetVar) {
if (PF(widgetVar) !== undefined) {
PF(widgetVar).hide();
}
}
和try
:
catch
另见:
答案 1 :(得分:0)
这个在 Primefaces 7.0 中对我有用:
if (PrimeFaces.widgets['yourWidget'] !== undefined) {
// do stuff
}