Q:

Google maps places request returning undefined results?

I am trying to place a place request using google maps' places API but My results are always undefined? 
Any suggestions? My other functions are able to correctly initialize the map object and I can see my map with markers without this place function?
If anyone could spot an error in this function I'd be extremely grateful!
    $scope.placeRequest = function(map){
                var location = new google.maps.LatLng(39.6303225,-106.57294);
                var service = new google.maps.places.PlacesService(map);

                service.nearbySearch({
                    location: location,
                    radius: 5000,
                    types: ['lodging','art_gallery','restaurant','bar', 'spa','museum']
                }, callback());

                function callback(results, status) {
                console.log(results);
                    if (status == google.maps.places.PlacesServiceStatus.OK) {
                        for (var i = 0; i < results.length; i++) {
                            $scope.places.push(results[i]);
                        }
                    }
                };
            };

A:

Your results are always undefined because you are using the callback parameter incorrectly.  This syntax is not correct, it calls the callback function and uses the results of that call (null) as the callback function:
service.nearbySearch({
    location: location,
    radius: 5000,
    types: ['lodging','art_gallery','restaurant','bar', 'spa','museum']
            }, callback());

It should be:
service.nearbySearch({
    location: location,
    radius: 5000,
    types: ['lodging','art_gallery','restaurant','bar', 'spa','museum']
            }, callback);

proof of concept fiddle
code snippet:

var geocoder;
var map;
var infowindow;
var $scope = {
  places: []
};

function initialize() {
  map = new google.maps.Map(
    document.getElementById("map_canvas"), {
      center: new google.maps.LatLng(37.4419, -122.1419),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
  var location = new google.maps.LatLng(39.6303225, -106.57294);
  var service = new google.maps.places.PlacesService(map);
  infowindow = new google.maps.InfoWindow();

  service.nearbySearch({
    location: map.getCenter(),
    radius: 5000,
    types: ['lodging', 'art_gallery', 'restaurant', 'bar', 'spa', 'museum']
  }, callback);

  function callback(results, status) {
    console.log(results);
    if (status == google.maps.places.PlacesServiceStatus.OK) {
      for (var i = 0; i < results.length; i++) {
        console.log(results[i].name + ":" + results[i].geometry.location);
        $scope.places.push(results[i]);
        createMarker(results[i]);
      }
    } else alert("places request failed, status=" + status)
  };

  function createMarker(place) {
    var placeLoc = place.geometry.location;
    var marker = new google.maps.Marker({
      map: map,
      position: place.geometry.location,
      title: place.name
    });

    google.maps.event.addListener(marker, 'click', function() {
      infowindow.setContent(place.name);
      infowindow.open(map, this);
    });
  }
}

google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry,places"></script>
<div id="map_canvas"></div>

