AngularJS控制器可以从同一模块中的另一个控制器继承吗?

前端之家收集整理的这篇文章主要介绍了AngularJS控制器可以从同一模块中的另一个控制器继承吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在一个模块中,控制器可以从外部控制器继承属性
var app = angular.module('angularjs-starter',[]);

var ParentCtrl = function ($scope,$location) {
};

app.controller('ChildCtrl',function($scope,$injector) {
  $injector.invoke(ParentCtrl,this,{$scope: $scope});
});

示例via:死链接http://blog.omkarpatil.com/2013/02/controller-inheritance-in-angularjs.html

也可以在模块内部的控制器继承自兄弟?

var app = angular.module('angularjs-starter',[]);

app.controller('ParentCtrl ',function($scope) {
  //I'm the sibling,but want to act as parent
});

app.controller('ChildCtrl',{$scope: $scope}); //This does not work
});

第二个代码不工作,因为$ injector.invoke需要一个函数作为第一个参数,没有找到ParentCtrl的引用。

是的,它可以,但你必须使用$控制器服务来实例化控制器,而不是: –
var app = angular.module('angularjs-starter',[]);

app.controller('ParentCtrl',function($scope) {
  // I'm the sibling,$controller) {
  $controller('ParentCtrl',{$scope: $scope}); //This works
});

猜你在找的Angularjs相关文章