javascript - Difference between $rootScope and $rootScope.$root -
is there difference between $rootscope , $rootscope.$root?
what difference between
$rootscope.global.flag = true , $rootscope.$root.global.flag = true
do both of them access same variable in rootscope?
if so, there particular situation have use either of them?
all scopes in angular instances of same prototype. such, global service $rootscope same type of object created directives , passed link function $scope, or controllers.
the property $root part of prototype , available on scopes.
the $rootscope first scope created angular. scopes created using $new method existing scope. $rootscope special case because it's created before angular.run() executed on modules.
when check value of $scope.$root references same instance provided root scope service $rootscope.
therefore;
console.log($rootscope === $scope.$root); // print true   or in example;
console.log($rootscope === $rootscope.$root); // print true   so yes, variables in root scope same no matter how reference root scope.
console.log($rootscope.global.flag); // prints true console.log($scope.$root.global.flag); // prints true console.log($rootscope.$root.global.flag); // prints true   you can explicitly access root scope in template expressions this.
<div>{{$root.somevalue}}</div>   there other properties $parent let walk chain of scopes, $parent null isolated scopes (since has no parent). 
Comments
Post a Comment