我仍然處於我的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