私はまだ角度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