в фабрику
Для начала разберитесь что есть фабрика. Фабрика это такая штука которая что-то создает, например собирает и инстанцирует какой-то сервис.
Но если первый вариант работает, то при вызове из фабрики,
А вы приглядитесь, вы в методе getFiles вашего сервиса ничего не возвращаете. Надо возвращать промис.
.factory("gistsFactory", function( $http, $q) {
return {
getFiles: function(id) {
return $http.get("http://тут_урл").then(function(response) {
return response.data;
}, function (reason) {
return $q.reject(reason);
});
};
})
p.s. не пользуйтесь $scope-ом в контроллерах, и да, почитайте документацию.