2

有什么方法可以在 javascript 中执行 ui:repeat 吗?这就是我想要做的。

var point;
<ui:repeat value="#{testController.allItems}" var="item">
  point = new google.maps.LatLng(item.latitude,item.longitude);
  createMarker(point, item.name, item.desc);   
</ui:repeat>

testController.allItems返回具有纬度和经度以及其他值的实体列表,我正在尝试使用谷歌地图进行商店定位器。createMarker向地图添加标记。

还是有更好的方法来做到这一点?

4

2 回答 2

1

您可以尝试(另一种选择:)c:forEach

        <script type="text/javascript">
                var point;
                <ui:repeat value="#{s9.list}" var="item">
                   point = new google.maps.LatLng(#{item.latitude},#{item.longitude});
                   createMarker(point, #{item.name}, #{item.desc});
                </ui:repeat>
        </script>

如果你的函数需要字符串参数,你应该使用'',例如:

    google.maps.LatLng('#{item.latitude}','#{item.longitude}');
    createMarker(point, '#{item.name}', '#{item.desc}');
于 2013-05-07T02:52:12.877 回答
1

我遇到了这个问题(c:forEach 也不起作用)。使用<h:outputScript>标签而不是<script>标签解决了这个问题。有了<h:outputScript>标签,我可以使用 ui:repeat

于 2016-12-16T10:48:28.420 回答