Обратиться к свойству $scope в контроллере
var module = angular.module("game", []); module.controller("gameCtrl", function($scope, $http) { getLocalization("RU", $http, $scope); console.log($scope.localization); }); function getLocalization(lang, http, score) { var lang_json; var data; switch (lang) { case "RU": lang_json = "/json?file=ru_lang.json"; break; } http({ method: "GET", url: lang_json }).then(function successCallback(response) { score.localization = response.data; }, function errorCallback(response) { console.log(response); }); } В общем, проблема такова, что когда я в консоль-лог кидаю $scope.localization, то вижу undefined, а когда просто $scope, то вижу объект, в котором есть свойство localization, куда все успешно записалось. Почему так и как мне обратиться правильно к $scope.localization? P.S. очень непривычно изучать Angular после jQuery, так оно все тут мудрено ... |
Вы вызываете консоль до того как запишется свойство локализации
Там ведь асинхронщина |
Данные в localization загружаются асинхронно, потому в консольничего не выводится, так как в момент вызова консоли данных еще нет. Можно обновить данные после успешной загрузки и тогда они будут видны.
$scope.$watch('localization', function() { console.log($scope.localization); }); |
Ты почти пришел к успеху
var module = angular.module("game", []); module.controller("gameCtrl", function($scope, $http) { getLocalization("RU").then(function successCallback(response) { score.localization = response.data; }, function errorCallback(response) { console.log(response); }); function getLocalization(lang, http, score) { var lang_json; var data; switch (lang) { case "RU": lang_json = "/json?file=ru_lang.json"; break; } return http({ method: "GET", url: lang_json }); } }); + выносить функцию за модуль не стоит, т.к. в другом твоем js-файле может ВНЕЗАПНО быть одноименная функция\переменная |
Часовой пояс GMT +3, время: 13:42. |