Дмитрий Кузнецов: resolve это правильный способ получения данных. Применяется для того, чтобы получить все необходимые данные до запуска кода контроллера. Кстати зря отметил ответ правильным. Его то и другие люди увидят и подумают что так и нужно делать.
Петр Слободянюк: "var markers = []" - это тоже из цикла вынеси.
Чтобы выводить id:
$(document).on('click', '.map-marker', function() {
console.log($(this).attr('id'));
});
Петр Слободянюк: конструктор и prototype нужно вынести из цикла. оставить только "var marker = new MapMarker(options[i]);". Вообще хорошо было бы создать страницу в jsfiddle, чтобы остальные могли попробовать исправить.
zigen: angular.module('sharePhotoApp', []) - новый модуль, angular.module('sharePhotoApp') - получение уже существующего модуля. предположу что в первом случае у вас была ошибка, потому что сначала был подключен файл app.js, а потом controllers.js