0
使用Angular.js(1.x)。
看來$rootScope
上的取消註冊事件偵聽器不會從$$listeners
屬性數組中刪除偵聽器。我錯過了什麼嗎?
這裏我用$scope.$root
來訪問$rootScope
。
- 獲取聽衆列表。
> $scope.$root.$$listeners Object $locationChangeSuccess: Array[1] __proto__: Object
- 添加
cat
聽者上$rootScope
。 - 驗證
cat
偵聽加入。 - 註銷,通過調用
dog
功能。 - 檢查
cat
偵聽器是空的/除去。不。 - 在情況下,它是一個未應用的消化循環問題。
- 檢查
cat
偵聽器是空的/除去。不。
> var dog = $scope.$root.$on("cat", function() {}); undefined
> $scope.$root.$$listeners Object $locationChangeSuccess: Array[1] cat: Array[1] __proto__: Object
> dog() undefined
> $scope.$root.$$listeners Object $locationChangeSuccess: Array[1] cat: Array[1] // ???? I would expect this to be 0 now __proto__: Object
> $scope.$root.$apply() undefined
> $scope.$root.$$listeners Object $locationChangeSuccess: Array[1] cat: Array[1] // Nope. __proto__: Object