开云手机站登录入口新手怎么玩 - 开云手机站登录入口

3年前 (2023-05-03)

$scope.$on 失去其外观时, 。 同题参见注意,$rootScope.$on 绑定不会发生这种情况。您还可以查看AngularJS的$ scope文档。

用几句话回答:

  • $scope.$on ;将被自动销毁。
  • 您需要$rootScope.$on 手动销毁。

文档说明:

@H_419_20@

范围销毁-当不再需要子范围时,子范围创建者有责任通过scope。 对照阅读$ destroy()API销毁它们。这样做是为了阻止$ digest调用传播到子作用域,并允许垃圾回收器回收由子作用域模型使用的内存。

如何销毁示例$rootScope.$on

//bind event
var registerScope = $rootScope.$on('someEvent', function(event) {
 console.log("fired");
});

// clean up
$scope.$on('$destroy', registerScope);

此plnkr将为您显示$scope.$on 和 的不同行为$rootScope.$on 延伸阅读

通过在此插入控件中切换视图,控制器将重新绑定到您的视图。该$rootScope.$on ;事件被绑定每次切换视图时不破坏前视图的事件绑定。这样,$rootScope.$on 听众将被堆叠/倍增。$scope.$on 绑定不会发生这种情况,因为它将通过切换视图而被破坏(丢失DOM中的E2E绑定表示)。


注意:

  • $scope.$on('event');会听$scope.$broadcast('event')$rootScope.$broadcast('event')

  • $rootScope.$on('event');只会听$rootScope.$broadcast('event')

解决方法

我有使用$ on绑定事件的指令,在销毁作用域时是否需要删除该绑定,或者它是自动完成的?还需要致电$ element.off吗?

return {
 restrict: 'A',link: function($scope,$element,$attrs) {
 $element.on('load',function {
 $element[0].contentWindow.focus ;
 });
 $scope.$on('iframe:focus',function {
 $element[0].contentWindow.focus ;
 });
 }
};

你可能想看:

标签:event孔德

继续阅读

若需了解「开云手机站登录入口新手怎么玩」的上下文,可结合站内栏目与相关篇目交叉阅读。

栏目用于追新,文内链接用于对照细节。两者配合可减少漏读与重复检索。

继续浏览时优先选择同栏目或相近主题,避免被站外镜像带偏。

频道列表

孔德 · wiki · event · 科技

页面按栏目组织。可先看导读,再进入相关篇目或返回列表。