在AngularJS中,可以通过多种方式来组合两个控制器。以下是一些常用的方法:
angular.module('myApp', [])
.service('sharedService', function() {
this.sharedData = 'Hello, World!';
})
.controller('Controller1', function($scope, sharedService) {
$scope.data = sharedService.sharedData;
})
.controller('Controller2', function($scope, sharedService) {
$scope.data = sharedService.sharedData;
});
angular.module('myApp', [])
.controller('Controller1', function($scope, $rootScope) {
$scope.data = 'Hello, World!';
$rootScope.$broadcast('dataUpdated', $scope.data);
})
.controller('Controller2', function($scope) {
$scope.$on('dataUpdated', function(event, data) {
$scope.data = data;
});
});
<div ng-app="myApp" ng-controller="ParentController">
<div ng-controller="ChildController">
{{ data }}
</div>
</div>
<script>
angular.module('myApp', [])
.controller('ParentController', function($scope) {
$scope.data = 'Hello, World!';
})
.controller('ChildController', function($scope) {
// 子控制器可以直接访问父控制器的数据
});
</script>
这些方法可以根据具体的需求选择使用。需要注意的是,控制器之间的组合应该遵循单一职责原则,尽量保持控制器的简洁和可维护性。
领取专属 10元无门槛券
手把手带您无忧上云