Вы можете понять это таким образом, что $ rootScope - это самая большая область видимости, и в нее входит вся другая область (то есть $ scope). Таким образом, вы должны передавать значение между областями, тогда вы должны использовать $ rootScope.
Примечание: function1 использует локальную переменную Counter, где область видимости находится внутри контроллера. То есть каждый контроллер имеет собственный объем. function2 использует глобальную переменную Counter, потому что глобальная переменная не определяет.
В вашем случае (помните, что угловая поддержка двухсторонняя привязка, поэтому всякий раз, когда изменение глобального значения изменяется во всех местах), контроллеры вызываются в следующей функции порядка1 -> function2 -> function1 -> function2.
Когда function1
получится вызвано в первый раз $rootScope.Counter
нет, поэтому он инициализируется одним и назначает его локальной переменной «Счетчик».
so output look like
Global value is 1
Child Instance of Function1 created :- 1
Child Instance of Function2 created :- 1
Child Instance of Function1 created :- NA // local scope for this is not created
Child Instance of Function2 created :- 1
Теперь функция2 будет вызвана. Это увеличивает глобальную переменную Счетчик до 2 и использует его для отображения
so output look like
Global value is 2
Child Instance of Function1 created :- 1
Child Instance of Function2 created :- 2
Child Instance of Function1 created :- NA // local scope for this is not created
Child Instance of Function2 created :- 2
Теперь функция 1 снова будет вызвана. Это увеличивает глобальную переменную Counter до 3 и присваивает ей локальную переменную.
so output look like
Global value is 3
Child Instance of Function1 created :- 1
Child Instance of Function2 created :- 3
Child Instance of Function1 created :- 3 //Because rootScope already have counter variable with 2
Child Instance of Function2 created :- 3
и, наконец, function2 дозвонились снова, Это увеличение глобальной переменной счетчика 4, и использовать его для отображения
so output look like
Global value is 4
Child Instance of Function1 created :- 1
Child Instance of Function2 created :- 4
Child Instance of Function1 created :- 3
Child Instance of Function2 created :- 4
Что это значит? –