angularjs - AngularJs 1.x:删除动态创建的范围并取消注册控制器
问题描述
我从我的代码(通常来自提供者)动态创建了一个范围和控制器,如下所示
var controllerFn = function ($scope) {
/* scope functions and variables */
$scope.$on('custom_ng_event', function (evt) {
console.log('Custom evt listened in dynamic scope');
});
$scope.$on('$destroy', function () {
console.log('Dynamically created scope destroyed');
});
}
var $scope = $rootScope.$new();
var ctrlInstance = $controller(controllerFn, {$scope: $scope});
我想在某个时候删除范围并取消注册控制器。我认为 $scope.$destroy() 会完成这项任务,但我认为我遗漏了一些东西,因为它没有给出预期的结果。就像,任何对 $rootScope 的广播仍然反映在动态创建的范围侦听器中。
请帮助我理解我做错了什么。
附加信息:我更喜欢让我动态创建的范围成为根范围的子范围(直接),因为它旨在用于整个应用程序(类似于模态应用程序)。
在此先感
谢巴鲁
解决方案
推荐阅读
- javascript - 在文本框中显示按钮的值并在javascript中更改所选按钮的颜色
- excel - 选择所有带前缀的工作表,复制和粘贴数据
- javascript - 在 Jest (Vue) 中测试子组件时如何模拟发射
- java - BIRT 每个表的单独页数
- drupal - 嗨,我正在使用 Drupal 9,并且在网络选项卡中的请求 jQuery 3.5.1 发送另一个上下文渲染调用。这个电话有什么原因吗?
- python - 从不同的索引开始'forloop.counter'或在结果中添加一些东西
- r - R函数返回每个值的位置出现的向量?
- javascript - 在 React 中,我需要从本地存储中获取状态,然后根据该状态有条件地设置另一个状态
- keras - 使用 PyTorch 的 DCGAN 判别器准确度指标
- javascript - 了解 debounce 函数逻辑流程,特别是对于 Event 对象 - (...args) 从哪里获取它的值?