如果传入无效的widgetvar会发生什么?

时间:2016-09-26 18:15:49

标签: jsf primefaces

我想知道当无效的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)

2 个答案:

答案 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
}