доступ к полям классов из GSP в Grails - PullRequest
0 голосов
/ 22 июня 2011

Как я могу получить доступ к полям классов из GSP в Grails?Например, следующее:

geocoder.geocode({
      'address': 'london'
   }, 

Мне нужно получить адрес программно после вставки пользователем.Что-то вроде следующего:

geocoder.geocode({
      'address': ${search.city}
   }, 

, где поиск - это класс, а город - это поле.Есть ли способ сделать это?Спасибо

ОБНОВЛЕНИЕ

Я пробовал это: В контроллере:

def map = {
    def searchInstance = Search.get(1)
    [locationList : Location.list(), search:searchInstance]
}

В виде:

function initialize() {
  var geocoder = new google.maps.Geocoder();
  geocoder.geocode({
      'address': ${search.city}
   }, 
   function(results, status) {
      if(status == google.maps.GeocoderStatus.OK) {

          var myMapOptions = {
                  zoom: 8,
                  center: results[0].geometry.location,
                  mapTypeId: google.maps.MapTypeId.ROADMAP
                };

                map = new google.maps.Map(document.getElementById("map_canvas"),
                    myMapOptions);

                <g:each in="${locationList}" status="i" var="location">     
                var point${location.id} = new google.maps.LatLng(${location.lat}, ${location.lng});
                var myMarkerOptions${location.id} = {
                      position: point${location.id}, 
                      map: map
                     };
                if(map.getCenter().distanceFrom(point${location.id}) < 500000)
                    var marker${location.id} = new google.maps.Marker(myMarkerOptions${location.id});   
            </g:each>

      }
   });

}

Я могу получить доступ из представления списка местоположений, возвращаемого закрытием карты, но не могу получить доступ к экземпляру поиска.Есть идеи?

Ответы [ 2 ]

1 голос
/ 22 июня 2011

если вы передадите экземпляр этого класса в качестве модели с вашего контроллера на ваше представление, вы сможете получить доступ к полям, как обычно.

Controller: searchController {
    def search = {
        def searchInstance = Search.get(1) //assuming this gets the search that you want
        [search:searchInstance] // return searchInstance to the view under the alias search
    }
}

Gsp: search.gsp {
    geocoder.geocode({
      'address': ${search.city}
   },
}
0 голосов
/ 22 июня 2011

Разве вы не можете просто вернуть переменную search как часть вашей модели в контроллере ?

...