Angular Js错误是不可理解的

时间:2014-10-21 22:38:21

标签: angularjs

我无法理解Angular JS的错误。我正在尝试构建一个工厂,但它继续在firefox控制台中给我以下错误。

错误:[ng:areq] http://errors.angularjs.org/1.2.9/ng/areq?p0=hospitalController&p1=not%20a%20function%2C%20got%20undefined

我的代码是

索引

<div class="main ng-scope" ng-view="">

部分

<button data-ng-click="ShowStaff()">show</button>

app.js

var myApp = angular.module('myApp', [
  'ngRoute',
  'artistControllers'
]);

myApp.config(['$routeProvider', function($routeProvider) {
  $routeProvider.
  when('/list', {
    templateUrl: 'partials/list.html',
    controller: 'ListController'
  }).
  when('/hospital', {
    templateUrl: 'partials/hospital.html',
    controller: 'hospitalController' 

  }).
  when('/docter', {
    templateUrl: 'partials/docters.html',
    controller: 'docterController'
  }).
  when('/details/:itemId', {
    templateUrl: 'partials/details.html',
    controller: 'DetailsController'
  }).
  otherwise({
    redirectTo: '/hospital'
  });
}]);

controller.js

var artistControllers = angular.module('artistControllers', ['ngAnimate']);
artistControllers.controller('ListController', ['$scope', '$http', function($scope, $http) {
  $http.get('js/data.json').success(function(data) {
    $scope.artists = data;
    $scope.artistOrder = 'name';
  });

// Starting Factory for Doctor and hospital relationship
artistControllers.factory( 'StaffFactory','$http',function(){
    var factory = {};
    $http.get('js/hospital.json').success(function(data) {
    factory.hospitals = data;
    //$scope.hospitalOrder = 'name';
    });

    $http.get('js/docters.json').success(function(data) {
    factory.doctors = data;
    //$scope.hospitalOrder = 'name';
    });

    factory.getDocs = function(){
      return factory.doctors;
      };

      factory.getHos= function(){
      return factory.hospitals;
      };
    factory.getStaff = function(){
       var result=[];
       var endres=[];
        angular.forEach(factory.hospitals, function(hospital){
          result=[];
          angular.forEach(factory.doctors,function(doc){
              if(doc.id==hospital.id)
              {
                result.push(doc);  
              }
            });
      endres.push([hospital,result]);          
      });
    return endres;
      }

    return factory;
    });     
artistControllers.SimpleController=function($scope,StaffFactory){

  $scope.customers=[];
  $scope.hospitals=[ ]; 
  $scope.doctors=[]; 
  $scope.staff=[]; 
  init();
  function init()
  {
    $scope.doctors=StaffFactory.getDocs();
    $scope.hospitals=StaffFactory.getHos();
  } 

  $scope.ShowStaff = function()
  {
    $scope.staff=StaffFactory.getStaff();
  }
  };


// Ending Factory for Doctor and hospital relationship
}]);

2 个答案:

答案 0 :(得分:3)

除了@dave解释的实际错误之外,如果你想让eror消息更明确而不必关注链接,你应该使用angular.js而不是angular.min.js(最小化的)为你的发展环境。

答案 1 :(得分:2)

如果您按照错误中的链接进行操作,则会看到

  

Argument&#39; hospitalController&#39;不是一个功能,未定义

这听起来像是你的html某处:

ng-controller="hospitalController"

但您还没有创建具有该名称的控制器。