Skip to content

Instantly share code, notes, and snippets.

@jakecraige
Created January 24, 2014 22:06
Show Gist options
  • Save jakecraige/8607689 to your computer and use it in GitHub Desktop.
Save jakecraige/8607689 to your computer and use it in GitHub Desktop.
Ea.GplacesAutocompleteComponent = Em.Component.extend
tagName: 'input'
classNames: ['google_places_ac']
attributeBindings: ['placeholder', 'type', 'value']
type: 'text'
didInsertElement: ->
autocomplete = new google.maps.places.Autocomplete($('.google_places_ac')[0], {})
#Fast click fix for gmaps
g_autocomplete = $('body > .pac-container').filter(":visible")
g_autocomplete.on 'DOMNodeInserted DOMNodeRemoved', (event) ->
$(".pac-item", this).addClass("needsclick")
google.maps.event.addListener autocomplete, 'place_changed', =>
place = autocomplete.getPlace()
locationName = if place['name'] then place['name'] else ''
url = if place['website'] then place['website'] else ''
acs = place.address_components
street_number = street_name = city = state = zip = ''
acs.forEach (component, key)->
next unless component['types']
switch component['types'][0]
when 'street_number'
street_number = acs[key]['short_name']
when 'route'
street_name = acs[key]['short_name']
when 'locality'
city = acs[key]['short_name']
when 'administrative_area_level_1'
state = acs[key]['short_name']
when 'postal_code'
zip = Number(acs[key]['short_name'])
address = street_number + ' ' + street_name
city = city
state = state
zip = zip
@get('item').setProperties
locationName: locationName
url: url
address: address
city: city
state: state
zip: zip
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment