我试图在我的应用程序中调用JSF函数更具动态性。我不希望手动将回调函数写入oncomplete
事件的静态方法,而是希望将回调函数作为参数发送,并在函数的oncomplete
事件内调用它。这是一个例子:
<script type="text/javascript">
myFunc('myParamValue', function(){
doThis();
andDoThis();
});
</script>
<a4j:jsFunction name="myFunc" actionListener="#{...}" data="" oncomplete="">
<f:param name="myParam" />
<f:param name="callback" />
</a4j:jsFunction>
我想问一下使用data
的{{1}}属性是否可行?像这样:
a4j:jsFunction
答案 0 :(得分:6)
尝试这样的事情:
// Page
<a4j:jsFunction name="callScript" data="#{bean.someProperty1}"
reRender="someComponent"
oncomplete="execute(data.callback)">
<a4j:actionparam name="something" assignTo="#{bean.something}"/>
<a4j:actionparam name="callback" assignTo="#{bean.callback}"/>
</a4j:jsFunction>
// JS
function testFunction() {
alert("It works!");
}
function execute(funcName) {
//is no namespace use window
window[funcName]();
}
//call
callScript("param1", "testFunction");
答案 1 :(得分:2)
试试这个:
<a4j:jsFunction name="callScript" data=".."
reRender="someComponent"
oncomplete="foo(data,request)">
<a4j:actionparam name="something" assignTo="#{bean.something}"/>
<a4j:actionparam name="callback" />
和js
function foo(data,request) {
var callback =request.options.parameters.callback ;
callback(data);
}