首页 > 解决方案 > 阐明 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 中,那么代码将不会被执行,直到父控制器被已销毁,在这种情况下不起作用

标签: angularjs

解决方案


推荐阅读