2013-10-23 16 views
16

Ho appena iniziato con AngularJS Il seguente codice restituisce un errore nella console.

Fornitore sconosciuto: $ scopeProvider < - $ scope < - newActiveOrdersModel. Ho fatto delle ricerche ma sembra che l'errore di Unknown Provider possa capitare per una serie di motivi. Sarebbe bello se qualcuno potesse indicare dove sto andando male?

var app; 
(function(angular){ 

    app = angular.module('OrdersDashboard',[]); 
    app.config(['$routeProvider', function($routeProvider) { 
     $routeProvider. 
      when('/current/new', {templateUrl: 'orders/partials/new_current', controller: 'newActiveOrdersCtrl'}). 
      otherwise({redirectTo: '/'}); 
    }]); 
    app.service('newActiveOrdersModel', ['$scope', '$rootScope', 
     function($scope, $rootScope){ 

      this.Orders=["This is a test order"]; 
      this.fetchOrders = function(){ 

       console.log("This is a test order"); 
       this.Orders=["This is a test order1111"]; 
      }; 
     }]); 
    app.controller('newActiveOrdersCtrl', ['$scope', '$rootScope', 'newActiveOrdersModel', 
     function($scope, $rootScope, newActiveOrdersModel){ 

      $scope.test="Hello World"; 
     }]); 

})(angular); 

sembra angolare Js non può riconoscere "newActiveOrdersModel".

+9

Non è possibile inserire '$ scope' nei servizi, non c'è nulla come un ambito $ singleton. Non sei sicuro del motivo per cui stai provando a iniettarlo perché il tuo codice non sembra utilizzarlo ... –

risposta

32

Questa è solo un'ipotesi, ma non so perché hai $ scope elencato come dipendenza del tuo servizio. Penso che qualcosa del genere

app.service('newActiveOrdersModel', ['$rootScope', 
    function($rootScope){..}] 

risolverà l'errore. Inoltre non includerei $ rootScope a meno che non ne abbia assolutamente bisogno. Generalmente è considerata una cattiva pratica in Angular per archiviare roba in $ rootScope.

+0

Non sapevo che l'ambito non possa essere elencato come dipendenza. Sarà richiestoRootScope poiché ho intenzione di sparare eventi per comunicare con i modelli – Abhik

+2

Ok, a volte devi semplicemente usare il rootScope ma ti consiglio di archiviare i tuoi eventi in un altro servizio invece di usare l'ambito globale. Ancora una volta, nulla di intrinsecamente sbagliato nell'usare l'ambito globale, ma non è considerato una pratica migliore neanche per evitare conflitti di denominazione e sovrappopolare l'ambito globale. – NicolasMoise

Problemi correlati