Обратиться к свойству $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, время: 18:41. |