Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了什么是推荐的方式来扩展AngularJS控制器?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有三个控制器是非常相似的。我想有一个控制器,这三个扩展和共享其功能
也许你不扩展控制器,但可以扩展控制器或使单个控制器混合多个控制器。 @H_667_5@module.controller('CtrlImplAdvanced',['$scope','$controller',function ($scope,$controller) { // Initialize the super class and extend it. angular.extend(this,$controller('CtrlImpl',{$scope: $scopE})); … Additional extensions to create a mixin. }]);

当父控制器被创建时,其中包含的逻辑也被执行。
有关详细信息,请参阅$ controller(),但只需传递$ scope值。所有其他值将正常注入。

@mwarren,你的关注是通过Angular依赖注入自动魔法。所有你需要的是注入$ scope,然如果需要可以覆盖其他注入的值。
请参见以下示例:

(function(angular) {

	var module = angular.module('stackoverflow.example',[]);

	module.controller('simpleController',function($scope,$document) {
		this.getOrigin = function() {
			return $document[0].LOCATIOn.origin;
		};
	});

	module.controller('complexController',$controller) {
		angular.extend(this,$controller('simpleController',{$scope: $scopE}));
	});

})(angular);
<script src="https://cdnjs.cloudFlare.com/ajax/libs/angular.js/1.3.15/angular.js"></script>

<div ng-app="stackoverflow.example">
    <div ng-controller="complexController as C">
        <span><b>Origin from Controller:</b> {{C.getOrigin()}}</span>
    </div>
</div>

然$ document不会传递到’simpleController’,当它被创建的’complexController’$ document为我们注入。

大佬总结

以上是大佬教程为你收集整理的什么是推荐的方式来扩展AngularJS控制器?全部内容,希望文章能够帮你解决什么是推荐的方式来扩展AngularJS控制器?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。