Run блок есть для инициализации значения, которые мы хотим сделать доступным через вне application.By инъекционной службы в перспективе будет только установить значение переменных услуг. Всякий раз, когда какой-либо другой компонент запрашивает обслуживание, он получает инициализированное значение (потому что сервис носит одинарный характер).
Код
//it acts as initialization block
angular.module('myApp').run(function(heavyService){
//here you can access service variables and method
//this variable value has been set before asked from any controller
heavyService.someVariable = 'Init Value';
});
В конфигурации фазы также можно задать значения переменных, которые должны быть инициализированы (как делают некоторые параметры конфигурации), но реальная вещь конфигурационный блок не имеет доступа к сервис, у них есть только доступ к provider
также $rootScope
в недоступном состоянии, пока вы находитесь в фазе config
.
Преимущество над интернализацией значения внутри блока ПУСК они имеют доступ для запуска $rootScope
& также можно обрабатывать маршрут, связанное событие как $locationchangestart
, $locationchangesuccess
, $routechangestart
и т.д.
Прохладный, вызывая eavyService.getAjaxCall() внутри моего метода запуска и установки данных ответа на heavyService.jsonData = jsonResponse ... как я могу получить доступ к этим данным в моем контроллере ... без повторного вызова ajax. ..Спасибо за замечательное объяснение – Shane
за то, что вам нужно сохранить переменную сферы внутри службы. который будет хранить данные, возвращенные из ajax. Затем внутри вашего контроллера вам нужно сначала ввести службу, затем синхронизировать эту служебную переменную с переменной области –