У меня есть следующий контроллер.
spaModule.controller("galleryController", function($http, $scope) {
var test;
$http.get("resources/php/gallery.php").success(function(response){
test = response;
});
console.log(test);
});
Этот контроллер отправляет запрос GET к PHP-файл, который возвращает некоторые JSON, содержащий имена файлов всех изображений, которые я в определенной директории. Я знаю, что, вероятно, я должен использовать эту услугу, но я буду использовать эту информацию только в одном контроллере, поэтому я бы просто сохранил ее в этом контроллере.
Мне нужно получить данные ответа из анонимной функции в область действия контроллера, чтобы я мог создать директиву галереи с данными JSON.
Код, который я добавил к этому вопросу, был моей попыткой сделать это. Я думаю, что моя проблема может заключаться в том, что функция .success имеет свою собственную область или, возможно, объект $ http, поэтому я вхожу в «вложенную» область. То есть мне нужно вывести JSON из области анонимной функции в область .success/$ http, а затем из этой области в область действия контроллера. Я не уверен, что это моя проблема, или если это так.
Как получить свой ответ JSON в область моего контроллера?
Я просто говорил о сфере видимости переменной JavaScript, а не об объекте $ scope. Хотя у меня есть вопрос. Я уже пробовал это раньше, но решил, что это не сработает. Я думал, что, потому что я пытался посмотреть на такие данные: 'console.log ($ scope.test);'. Это возвращает «undefined» в консоли, но я могу называть '{{test}}' на странице без проблем. Почему это? – Allenph
** Асинхронное выполнение. ** Время, когда вы вызываете 'console.log' и время, когда' $ scope.test' фактически назначено, - это наоборот, чем вы думаете. – deceze
Хм. Я планировал использовать эти данные в директиве ng-repeat на внешней странице. Если я понимаю, что вы говорите, я не буду в типичном хронологическом порядке команд. Этот 'console.log' вызывается до того, как запрос AJAX будет полностью обработан. Если это правда, у меня могут быть проблемы с моей директивой, не так ли? – Allenph