is there any way to perform a ui:repeat inside a javascript? this is what i'm trying to do.
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
returns a list of entities with latitude and longitude and other values, i'm trying to do a store locator using google maps. createMarker
adds marker to the map.
or is there a better way to do this?
You can try(another option: 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>
If your function require String parameter, you should use '', for ex:
google.maps.LatLng('#{item.latitude}','#{item.longitude}');
createMarker(point, '#{item.name}', '#{item.desc}');
I had this issue (c:forEach would not work either). Using the <h:outputScript>
tag instead of the <script>
tag resolved the problem. With the <h:outputScript>
tag I could use ui:repeat