저는 Angular 1.0 여행의 초기 단계에 있습니다. 나는 그것을 좋아하는 것을 배우고있다. 그러나 나는 아직도 약간의 장소에서 나의 머리를 긁고있다.
최근에 나는 $ watch를 사용하면서 뭔가 혼란에 빠졌습니다. 보십시오 :
$scope.$watch('cookies', function() {
if ($cookies.getAll().redditSession) {
$scope.$emit('cookiesChanged')
// $scope.userWelcome = cookieService.decodeCookie($cookies.get('redditSession'))
}
})
$scope.$on('cookiesChanged', function() {
$scope.userWelcome = cookieService.decodeCookie($cookies.get('redditSession'))
})
이 코드는 작동합니다. 쿠키가 변경되면 이벤트를 발생시켜 이벤트 리스너를 트리거하여 $ scope.userWelcome의 값을 쿠키에 저장된 값으로 변경합니다. 내 앱에서 다른 경로를 탐색하면이 변경 사항이 표시됩니다.
그러나 여기 왜 이벤트 이미 터를 사용해야하는지 궁금합니다. 내가 주석 처리 한 행을 주목하십시오. 먼저 시도했지만, $ scope.userWelcome의 값은 변경되지 않습니다. 앱에서 다른 페이지로 이동할 경우에도 마찬가지입니다. 로그인 한 페이지를 다시로드해야합니다.
어떻게 된거 야?
이 조각 모두의 외부 환경은 무엇입니까? 그들은 같은 컨트롤러에 있습니까? – charlietfl
네, 같은 컨트롤러에 둘 다 – jamesfreeman