Приложение на AngularJS. Есть корневой модуль:
angular.module('myApp', ['categoriesList'])
к которому подключен модуль categoriesList
angular.module('categoriesList', [])
angular.module('categoriesList')
.component('categoriesList', {
templateUrl: 'categories-list/categories-list.template.html',
controller: function CategoriesListController() {
}
})
Как загрузить данные JSON одни раз в начале приложения в модуле myApp, и затем передать их в другие модули.
Пробовал такой вариант, но т.к. данные приходят асинхронно, в categoriesList не присвоить результат:
angular.module('myApp', ['categoriesList'])
.run(function ($http, $rootScope) {
$rootScope.isLoaded = false
$http.get('http://127.0.0.1:8887/base.json')
.then(response => {
$rootScope.data = response.data
$rootScope.isLoaded = true
})
})
Кроме того $rootScope доступен в модуле categoriesList, но свойства не наследуются. Их нужно переопределять $scope.load = $rootScope.isLoaded (хотя насколько я понял, должны просто наследоваться)
html:
<html ng-app="myApp">
...
<categories-list></categories-list>
...
Решил через промисы. В корневом модуле создается сервис:
.factory('httpservice', function ($q, $http) {
var deferred = $q.defer();
deferred.resolve($http.get('http://127.0.0.1:8887/base.json'));
return deferred.promise;
})
Остальные модули используют его:
let promise = httpservice
promise.then(function (resp) {
$scope.categories = resp.data.categories })
Возможно есть решение через $broadcast и $on.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Мне нужно организовать нажатие кнопки на веб-странице в определённое время, которое я задамКод, который я вставляю в консоль хрома не работает,...
Ребят, не оценивайте верстку и адаптивностьГлавное - js код, а именно фильтрация https://github
У меня большое количество ссылок с изображением, мне нужно их скачатьНо не просто скачать, а каждой дать название