Mukesh Ghosh Ответов: 2

Rootscope не работает угловой


Всем Привет,
Пожалуйста, помогите мне в этом вопросе.
У меня есть declare & assign a value in rootscope valrible & want to acces from another controller but it say undefine in controller 2.
Контроллер 1
$rootScope.name = 'anonymous';


controller2
$scope.local = $rootScope.name;
       alert($scope.local);


Но, показывая неопределенное, не пропущу ли я какую-нибудь конфигурацию?

Что я уже пробовал:

Controller 1
<pre> $rootScope.name = 'anonymous';


controller2
$scope.local = $rootScope.name;
       alert($scope.local);

2 Ответов

Рейтинг:
2

sonymon mishra

1. Пожалуйста, убедитесь, что вы вводили метрики в обоих контроллерах.
2. Если вы обновляете его значение, заверните его в метрики.$применить(), так что Angular будет знать, что что-то происходит, и сделает его привязку.

$rootScope.$apply(function () {               
    $rootScope.name = 'anonymous';
  });


Рейтинг:
0

pankaj287

Вы не должны загрязнять `$rootScope " внутри углового приложения. Потому что "$rootScope "- это самый верхний "корень" приложения. Если вы определите над ним какую-либо переменную, она будет доступна в любой дочерней области. Когда дело доходит до совместного использования переменных между различными компонентами Angular, вы должны рассмотреть возможность использования service/factory. Они представляют собой одноэлементный объект, который будет доступен во всем приложении.

app.service('sharedData', sharedDataService)
function sharedDataService(){
   var self = this;
   self.getName = getName;
   self.setName = setName;
   function setName(name) {
      self.name = name;
   }
   functName(nam = namee) {
      return self.name;
   }
}

//Controller 1
$scope.local = sharedData.getName();

//Controller 2
sharedData.setName('anonymous')
$scope.getName = sharedData.getName;

//On view
You could use `{{getName()}}`