@DKit

Как можно передать $rootScope в компонент в стиле Angular 1.5?

Когда-то делал по туториалам еще до 1.5 и после аутентификации записывал
$rootScope.authenticated = true;
$rootScope.currentUser = JSON.parse(localStorage.getItem('user');
и спокойно использовал везде где нужно
Сейчас пытаюсь несколько освежить на 1.5 и конечно сталкиваюсь со многими изменениями.
Пытался в тупую.
myApp
	.component('home', {
		bindings: {},
  	template:  '<h1> Wellcome, {{$rootScope.currentUser}}{{currentUser}}</h1>',
  	controller: function ($rootScope) {
			console.log($rootScope);
//я его нахожу где-то в дебрях, но в шаблон не лезет ни в какую
  	}
})

Делал это в ..
myApp.run(function($rootScope) {
                var user = JSON.parse(localStorage.getItem('user'));
                if(user) {
                    $rootScope.authenticated = true;
                    $rootScope.currentUser = user;
})}


В итоге сделал через factory.
myApp
	.component('home', {
		bindings: {},
  	template:  '<h1> Wellcome, {{$ctrl.user}}</h1>',
  	controller: function (Auth) {
			var $ctrl = this;
			$ctrl.user = Auth.getAuthUser();
	}
})

Понимаю, что скорее всего ответ будет "никак, забудь", но все же - как $rootScope использовать?
  • Вопрос задан
  • 192 просмотра
Пригласить эксперта
Ответы на вопрос 1
$rootScope всё так же отлично инжектится, только вы из него значение присвойте какому-то свойству в контроллере.
function ($rootScope) {
      var vm = this;
       vm.user = $rootScope.currentUser;
}

В шаблоне:
'<h1> Wellcome, {{$ctrl.user}}</h1>'
Учтите, что делать так - вставлять себе палки в колёса. Чем вас не устраивает наличие фабрики?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы