Angularjs:执行控制器的优先级

时间:2015-07-31 11:00:03

标签: angularjs

我有一些控制器,并希望彼此分享一些数据。 所以我建立了一个工厂将这些数据(“anagType”)从“AnagTypeController”传递给“CourseCatController”,但第二个控制器在第一个控制器之前被解析。 这是HTML:

<div id="workArea" class="row">
	<div class="col-md-6">
		<div class="panel panel-info" ng-controller="Controller1">
			...
		</div>
	</div>
	<div class="col-md-6">
		<div class="panel panel-warning" ng-controller="AnagTypeController">
			...
		</div>
		<div class="panel panel-warning" ng-controller="Controller3">
			...
		</div>
	</div> 
	<div class="clearfix"></div>
	
	<div class="col-md-4">
		<div class="panel panel-danger" ng-controller="CourseCatController">
			...
		</div>
	</div>
	<div class="col-md-4">
		...
	</div>
	<div class="col-.md-4">
		...
	</div>
	<div class="clearfix"></div>
	
</div> <!-- /#workArea-->

......这就是angularjs:

app.controller('AnagTypeController', ['$scope', '$http', 'MsgBox', 'EmployeeMng',
  function($scope, $http, MsgBox, EmployeeMng) {
    $scope.anagType = [];

    $scope.getList = function() {

      $http({
          method: "GET",
          url: "../../xxx"
        })
        .success(function(data) {
          $scope.anagType = data;

          EmployeeMng.addAnagType($scope.anagType);

        })
        .error(function(data, status) {
          console.log('ERROR AnagTypeController getList ' + data + ' ' + status);
        });
    };


    $scope.getList();
  }
]);

app.controller('CourseCatController', ['$scope', '$http', 'MsgBox', 'EmployeeMng',
  function($scope, $http, MsgBox, EmployeeMng) {
    $scope.anagType = [];
    $scope.courseCats = [];
    $scope.courseCatsObbl = [];

    $scope.getCourseCats = function() {

      $scope.anagType = EmployeeMng.anagType;

      ...

    }

    $scope.getCourseCats();



  }
]);

也许我以错误的方式使用角色?

1 个答案:

答案 0 :(得分:1)

您应该将该代码移动到实际的服务本身,而不是在一个控制器中调用来设置数据。 然后,所有需要数据的控制器都可以调用服务来获取数据。