这是一个如何在Angular中扩展控制器的示例。
myApp.service('baseCtrl', function () { this.name = 'base'; this.getName = function() { return this.name; };});myApp.controller('MainController', ['baseCtrl', function (baseCtrl) { angular.extend(this, baseCtrl); this.name = 'main';}]);myApp.controller('Child1', ['baseCtrl', function (baseCtrl) { angular.extend(this, baseCtrl); this.name = 'child1';}]);myApp.controller('Child2', ['baseCtrl', function (baseCtrl) { angular.extend(this, baseCtrl); this.name = 'child2';}]);
它要求使用
controllerAs,它取代
$scope有
this,它是这样的情况特别好。
注意
service,它是
new在幕后使用的,而不是其他Angular服务类型的用法,因此
this...可以将语句从控制器直接带到单独的服务。
有几种执行控制器继承的方法。
关于原始代码,Angular中没有“控制器继承性”。和
$scope原型继承假设
$scope.getName = function() { return $scope.name;};
$scope.name从定义它的上下文返回,
MainController在您的情况下是函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)