angularjs - 阐明 angularjs 模式中的两个断言
问题描述
我们经常会发现自己在控制器中一遍又一遍地重复相同的事件处理代码,最好将代码移动到基本控制器中。然后,我们可以通过使用 $controller 服务将基本控制器的属性和功能添加到控制器的作用域来继承该功能,
如以下代码所示:
var app = angular.module('angularjs-starter', []);
app.controller('ParentCtrl ', function($scope) {
// methods to be inherited by all controllers
// go here
});
app.controller('ChildCtrl', function($scope, $controller) {
// this call to $controller adds the ParentCtrl's methods
// and properties to the ChildCtrl's scope
$controller('ParentCtrl', {$scope: $scope});
// ChildCtrl's methods and properties go here
});
谁能清楚地告诉我们并给我们2个例子来阐明以下两个断言
断言1:
如果我们有多余的事件处理程序需要在视图被销毁时注销,我们可以通过在基本控制器中包含冗余代码并使用 $on 方法来确保在控制器被销毁时执行注销事件处理程序的代码在广播 $destroy 消息时执行它。
断言2:
但是,如果我们通过在另一个 ng-controller 指令中嵌入一个 ng-controller 指令来使用继承功能的模式,并且取消注册我们的处理程序的代码在父 ng-controller 中,那么代码将不会被执行,直到父控制器被已销毁,在这种情况下不起作用
解决方案
推荐阅读
- swift - 节点位置卡在原点
- html - 如何在左上角制作内部div位置
- python - 如何使用变量生成带有 python-barcode 的条形码
- java - 将适配器设置为微调器会将回收器视图滚动到顶部
- node.js - 在 mongo db 中创建的用户在约 50 天后被删除(未指定 TTL)
- java - Android - 每毫秒调用一个方法而不使用线程
- javascript - VSCode - Chrome 调试 - 未验证的断点
- reactjs - React Griddle 对多列进行排序
- mysql - MAMP PRO,需要 MySQL 5.5
- javascript - 用 for 循环关闭