简体   繁体   中英

ui:repeat inside a javascript

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM