【发布时间】:2013-03-17 11:25:04
【问题描述】:
假设我有一个用于呈现为ng-view 的页面的控制器。
此控制器绑定到外部源(例如应用程序范围的消息总线)的某些事件以更新其模型。这基本上很容易:
function MyController ($scope) {
$scope.bar = '…';
externalSource.on('foo', function (data) {
$scope.$apply(function () {
$scope.bar = data.bar;
});
});
}
问题是:一旦控制器关联的视图不再显示,我如何解除控制器与外部源的绑定?
是否有诸如dispose 事件之类的东西或类似的东西?
或者我的方法完全错误,我应该以其他方式处理类似的事情?如果有,怎么做?
【问题讨论】:
-
如果你使用 jQuerys on('event', ...) 方法,你可以简单地调用 off('event') 来删除事件。还是我误会了?
-
这不是一个特别的 angularjs 问题。这取决于您使用的外部事件资源。
-
是的。我知道如何解除绑定,但我不知道何时/何地进行。这取决于控制器的生命周期,这肯定与 AngularJS 有关。
标签: events controller angularjs