<o:commandScript>:引用命名空间的JS函数名称



我正在使用全面<o:commandScript>-tag在滚动时 ajax 加载数据。 目前这个片段工作正常,但我想知道,是否可以从外部 js 文件中引用函数名以避免在 XHTML 文件中定义所有这些脚本:

产品.xhtml:

<o:commandScript name="loadNext" actionListener="#{productBean.loadNext}" render="products"/>
       <script type="text/javascript">
             $('.scrollSpy').on('inview.uk.scrollspy', function() { //UIKit scrollspy listener
                loadNext();
            });
       </script>  
       <h:panelGroup id="products">
           <div class="box scrollSpy">
               ...
           </div>
       </h:panelGroup>

我正在寻找像这样的 STH:

产品.xhtml:

<o:commandScript name="GENERIC.loadNext"
                 actionListener="#{productBean.loadNext}"/>

通用.js:

 var GENERIC = (function () {
   var my = {};
   my.loadNext = function (){}  //empty
   my.productsLoaded = function (){
    //doSomething
   } 
   $(document).ready(function(){        
      $('.scrollSpy').on('inview.uk.scrollspy', function() { 
             my.loadNext();
      });     
   });      
   return my;
})()

但我得到

[o:commandScript 'name' attribute 'GENERIC.loadNext' does not represent a valid script function name.]

虽然来自通用的常规调用.js但工作正常,例如

<f:ajax listener="#{productBean.refresh}" render="products" onevent="GENERIC.productsLoaded"/>

提前感谢您的建议。

这个要求从一开始就没有被考虑过。根据第 218 期,我已经为当前的 2.3 快照修复了它。

<o:commandScript>将不再认为(正确放置的)句点无效,并在名称中存在句点时省略显式var声明。

最新更新