gpt4 book ai didi

events - 当 Controller /$scope被销毁时如何解除外部事件的绑定(bind)?

转载 作者:行者123 更新时间:2023-12-02 04:29:19 25 4
gpt4 key购买 nike

假设我有一个正在渲染到 ng-view 中的页面的 Controller 。

该 Controller 绑定(bind)到外部源(例如应用程序范围的消息总线)的某些事件以更新其模型。这基本上非常简单:

function MyController ($scope) {
$scope.bar = '…';

externalSource.on('foo', function (data) {
$scope.$apply(function () {
$scope.bar = data.bar;
});
});
}

问题是:一旦 Controller 关联的 View 不再显示,如何解除 Controller 与外部源的绑定(bind)?

是否有诸如 dispose 事件或类似的事件?

或者我的方法完全错误,我应该以其他方式处理类似的事情?如果是这样,怎么办?

最佳答案

要在 Controller 的作用域被销毁时执行事件取消绑定(bind),请使用:

$scope.$on('$destroy', function () {/* 此处取消绑定(bind)代码 */});

参见Scope文档以获取更多信息

关于events - 当 Controller /$scope被销毁时如何解除外部事件的绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15460222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com