我必须通过在页面加载时将向量作为参数传递来调用我的JS中的函数。
我可以使用p:commandButton执行此操作,其中:
actionListener = "# {routeEnterBean.GetMap ()}"
我在Bean中运行该函数(在数据库中获取值),然后在这里:
oncomplete = "initMap (xhr , status, args) "
因此,执行JS功能
Code Bean:
public void gerarMapa() {
RequestContext context = RequestContext.getCurrentInstance();
context.addCallbackParam("coord", new
org.primefaces.json.JSONArray(coordenadas));
}
函数JS
function initMap(xhr, status, args) {
var qtd_entregas = args.coord.length;
for (var i = 0; i < args.coord.length; i++) {
waypts.push({
location : args.coord[i].latitude + ', ' + args.coord[i].longitude,
stopover : true,
});
}
}
但我想在不加载页面的情况下立即点击按钮这样做。
我知道可以使用此命令执行一个函数:
RequestContext.getCurrentInstance().execute("testeJS();");
但我不知道如何将矢量作为参数传递
答案 0 :(得分:1)
您可以保留现有代码并使用Primefaces p:remoteCommand通过在页面上添加以下行来执行此操作
<p:remoteCommand autoRun="true" actionListener="#{routeEnterBean.gerarMapa()}" oncomplete="initMap(xhr, status, args);"/>
属性autoRun="true"
将强制p:remoteCommand
在页面加载时执行。