2016-10-10 1 views
0
definiert ist

Ich versuche, diese Nachricht zu laufen und bekam:

Uncaught ReferenceError: $rootScope is not defined at app.js line 12

hier ist mein js/app.js

angular.module('addEvent', ['ngRoute']) 
    .config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { 
     $routeProvider.when('/add-event', { 
       templateUrl: 'views/add-event.html', 
       controller: 'formCtrl', 
       controllerAs: 'eventCtl' 
      }) 
      .otherwise({ 
       redirectTo: '/' 
      }); 
     $locationProvider.html5Mode(true); 
    }]) 
    .run(['$rootScope', function() { 
     $rootScope.event = []; 
    }]); 

diese js/controller.js

angular.module('addEvent') 
     .controller('formCtrl', ['eventFactory', function(eventFactory) { 
      //$scope.event=[]; 
      this.event = eventFactory.getAllEvents(); 
      this.submitForm = function(form) { 
       eventFactory.createEvent(angular.copy(form), this.event); 
       // $scope.event.push(angular.copy(form)); 
       console.log($scope.event); 
      } 
     }]) 

services/eventFactory.js

angular.module('addEvent') 
    .factory('eventFactory', function() { 
     var eventFactory = {}; 
     var events = []; 
     eventFactory.getAllEvents = function() { 
      return events; 
     } 
     eventFactory.createEvent = function(event, eventList) { 
      events.push(event); 
      eventList = events; 
      return eventList; 
     } 
     return eventFactory; 
    })  

bei index.html Und ich hinzugefügt Skript auf diese Weise

<script src="./js/jquery-1.12.4.js"></script> 
<script src="./js/bootstrap.js"></script> 
<script src="./js/angular.min.js"></script> 
<script src="./js/angular-route.js"></script> 
<script src="./js/app.js"></script> 
<script src="./js/controller.js"></script> 
<script src="./services/eventFactory.js"></script> 

Antwort

4

Sie benötigen $rootScope im run() Methode zu injizieren

.run(['$rootScope',function($rootScope){ 
    $rootScope.event=[]; 
}]); 

statt

.run(['$rootScope',function(){ 
    $rootScope.event=[]; 
}]); 
+1

Sie sehen sehr viel danken –

1

Sie haben vergessen zu schließen der $rootScope Service in der run Funktion als Parameter, der ist, warum Sie den Fehler Uncaught ReferenceError: $rootScope is not defined

angular 
 
    .module('demo', []) 
 
    .run(run) 
 
    .controller('DefaultController', DefaultController); 
 
    
 
    run.$inject = ['$rootScope']; 
 
    
 
    function run($rootScope) { 
 
    $rootScope.events = []; 
 
    console.log($rootScope.events); 
 
    } 
 
    
 
    function DefaultController() { 
 
    var vm = this; 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="demo"> 
 
    <div ng-controller="DefaultController as ctrl"> 
 
    </div> 
 
</div>

Verwandte Themen