我想知道创建控制器的这两种方法的用例是什么:
使用ngController:
myApp.controller('myController',['$scope',function ( $scope ) {
}]);
在控制器属性的指令中构造控制器:
myApp.directive ( 'myDirective',[ '$window',function( $window ) {
return {
restrict: 'A',controller: [ '$scope',function( $scope ) {
}],link: function( scope,element,attrs ) {
}
};
}]);
如果在同一个元素上调用了这个指令,那么你有没有理由不构造控制器?
这只是一个问题,控制器的使用/复杂程度如何?
解决方法
使用指令控制器的原因在一句话中缩写:
To create reusable components
指令控制器应包含可重复使用的组件的逻辑.使用指令控制器和隔离范围是创建可重用组件的方法.
以分页器为例:分页器需要一些逻辑来通知当前所选页面的其他组件(例如网格)已更改,以便网格可以相应更新.这些逻辑可以写在指令控制器内部以被重用.当与隔离范围一起使用时,此范围不适用于应用程序控制器,您可以轻松地将pageSize配置为绑定到应用程序控制器范围的任何属性.