/* global console:false, google:false */ /*jshint unused:false */ 'use strict'; app.controller('MapCtrl', ['$scope', function ($scope) { $scope.myMarkers = []; $scope.mapOptions = { center: new google.maps.LatLng(35.784, -78.670), zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP }; $scope.addMarker = function ($event, $params) { $scope.myMarkers.push(new google.maps.Marker({ map: $scope.myMap, position: $params[0].latLng })); }; $scope.setZoomMessage = function (zoom) { $scope.zoomMessage = 'You just zoomed to ' + zoom + '!'; console.log(zoom, 'zoomed'); }; $scope.openMarkerInfo = function (marker) { $scope.currentMarker = marker; $scope.currentMarkerLat = marker.getPosition().lat(); $scope.currentMarkerLng = marker.getPosition().lng(); $scope.myInfoWindow.open($scope.myMap, marker); }; $scope.setMarkerPosition = function (marker, lat, lng) { marker.setPosition(new google.maps.LatLng(lat, lng)); }; }]) ; app.directive('uiEvent', ['$parse', function ($parse) { return function ($scope, elm, attrs) { var events = $scope.$eval(attrs.uiEvent); angular.forEach(events, function (uiEvent, eventName) { var fn = $parse(uiEvent); elm.bind(eventName, function (evt) { var params = Array.prototype.slice.call(arguments); //Take out first paramater (event object); params = params.splice(1); fn($scope, {$event: evt, $params: params}); if (!$scope.$$phase) { $scope.$apply(); } }); }); }; }]);