检查PrimeFaces widgetVar是否存在

n00*_*mer 9 javascript jsf primefaces

我有一个Primefaces commandButton,它在onComplete中调用一个数据表过滤器.数据表由widgetVar引用:

<p:commandButton id="addFishBtn" 
                    title="Add Fish"
                    update="fishForm:FishTbl"
                    action="#{backingBean.addFish()}" 
                    oncomplete="fishTable.filter()"/>
Run Code Online (Sandbox Code Playgroud)

问题是,按下此按钮时,fishTable并不总是存在.它不存在,应用程序卡住了.我从其他SO问题中尝试过类似的东西:

oncomplete="if(typeof(fishTable) != 'undefined') {fishTable.filter()}"
Run Code Online (Sandbox Code Playgroud)

但它似乎没有做任何事情.有没有正确的方法来检查widgetVar当前是否有任何值?
谢谢!

Hat*_*mam 17

您可以使用以下内容

if(PrimeFaces.widgets['fishTable']) {
   //widgetVar does exist
   PF('fishTable').filter();
}
Run Code Online (Sandbox Code Playgroud)