gpt4 book ai didi

javascript - 如何在 Angular 中使用 controllerAs 语法时监听 $destroy

转载 作者:搜寻专家 更新时间:2023-11-01 05:21:18 27 4
gpt4 key购买 nike

现在我正在从我的 Angular Controller 中摆脱 $scope 依赖,以确保我可以轻松地将我的代码迁移到 Angular2。我当前的 Angular 版本是 1.4.X。在做同样的事情时,我将 $destroy 监听器放置在我的 Controller 范围内,如 $scope.$on('$destory', function() ....).

我可以看到 $on 方法仅在 Controller 的 $scope 上可用,但是我如何在不使用 $scope 依赖项的情况下实现它。

最佳答案

如果您使用的是 angular 1.5+,他们会添加 lifecycle hooks您可以在 Controller 上选择加入。不需要 $scope。只需将一个名为 $onDestroy() 的函数添加到您的 Controller 中,它就会在您的 Controller 被清理时被调用:

$onDestroy() - Called on a controller when its containing scope is destroyed. Use this hook for releasing external resources, watches and event handlers.

示例来自 http://blog.thoughtram.io/angularjs/2016/03/29/exploring-angular-1.5-lifecycle-hooks.html :

function MyCmpController($element) {

var clickHandler = function () {
// do something
};

this.$onInit = function () {
$element.on('click', clickHandler);
};

this.$onDestroy = function () {
$element.off('click', clickHandler);
};
}

关于javascript - 如何在 Angular 中使用 controllerAs 语法时监听 $destroy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38144187/

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