typescript logic issue with angular 2 and google maps api
<p>i am trying to create a function to get the location value to pass it  to all the components using shared service below is my <code>ngOnInit</code> function</p>

<pre><code>   this.input = document.getElementById('google_places_ac');
        var autocomplete = new google.maps.places.Autocomplete(this.input, { types: ['(cities)']});
        google.maps.event.addListener(autocomplete, 'place_changed', function () {
            var place=autocomplete.getPlace();
           this.setValue(place.address_components[3].long_name, place.address_components[2].long_name, place.address_components[1].long_name);

         });
</code></pre>

<p>the problem is that it doesn't recognize this.setvalue function which shares value with my shared service or any variable with this.variable , its javascript "this" issue . and i can not even get this function to work with my constructor, it throws error at getElmentById.</p>

<p>there are solutions with arrow functions and all but i dont know how to use it in this condition so please help me..</p>