我仍然处于我的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'))
})
此代码的工作原理。如果我的cookie发生变化,我会发出一个事件,从而触发事件侦听器,将$ scope.userWelcome的值更改为存储在cookie中的某个值。如果我在我的应用程序中导航到另一条路线,我会看到此更改。
但是,我想知道为什么我必须在这里使用事件发射器?注意我注释的那一行。我首先尝试了这一点,但它并没有改变$ scope.userWelcome的值,即使我移动到我的应用中的另一个页面。我必须重新加载页面才能看到我已登录。
这是怎么回事?
什么是这两个片段的外语境?他们是否在同一个控制器中? – charlietfl
是的,两个在同一个控制器 – jamesfreeman