2014-05-24 13 views
7

Sono nuovo di Angular quindi mi sto ancora chiedendo come funziona. Tuttavia, sono incappato in un problema (molto presto ...) e il codice seguente mi sta dando "Oggetto non catturato" nella console e si interrompe in Angolare. La sezione .config è il colpevole, se lo rimuovo, la pagina si carica bene. Non sono del tutto sicuro di come sia stato causato l'errore, perché per me tutto sembra a posto?Angular Uncaught Object

var app = angular.module('app', ['ngRoute']) 

    .config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { 
     $routeProvider 
      .when('/dashboard', { 
       templateUrl: '/app/views/admin.html', 
       controller: 'DashboardController' 
      }) 
      .otherwise('/', { 
       redirectTo: '/' 
      }) 

     $locationProvider.html5mode(true); 
    }]) 

    .controller('DashboardController', ['$scope', function ($scope, Security) { 
     $scope.security = Security; 
    }]) 
+0

Qual è l'oggetto 'security' che si sta iniettando? –

+1

Che aspetto ha il tuo HTMl? Stai includendo la rotta di AngularProvider js file? –

+0

@TylerMcGinnis yeah il file ref è incluso e ho pre-elaborato lo script del percorso con un alert() per assicurarmi che venga recuperato. – leaksterrr

risposta

6

.otherwise accetta un solo parametro - un oggetto che contiene informazioni su ciò che deve essere fatto per le rotte che non sono definiti.

Nel tuo caso, sembra che tu stia passando un percorso ad esso oltre a un oggetto.

Sostituire:

.otherwise('/', { 
    redirectTo: '/' 
}) 

con

.otherwise({ 
    redirectTo: '/dashboard' 
}); 

Nota che è necessario reindirizzare a un percorso che esiste. '/' è un percorso che non esiste. '/ dashboard' è un percorso che fa, quindi ti reindirizza ad esso. Oppure, definisci un gestore per il percorso '/'

+0

Ricevo ancora l'errore :( – leaksterrr

+0

@leaksterrr È possibile incollare l'intero errore? – callmekatootie

+0

http://cl.ly/image/453b0m202B35 – leaksterrr

0

Assicurati che il tuo angular.js sia caricato prima di angular-route.js nel tuo file HTML. come:

<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular-route.js"></script> 
30

ho avuto lo stesso errore; se si attiva Chrome per mettere in pausa sulle eccezioni, sarete in grado di avere informazioni di errore più dettagliate angular uncaught object

+2

Questo è stato risparmiatore di vita.Non ho mai usato la pausa sulle eccezioni, ma sempre impostando punti di interruzione. –

+0

+1 per "pause sulle eccezioni" e immagine schermata utile. –

1

sto postando il mio propria soluzione, come diversi fattori sembrano essere alla base di questo problema e nessuno ha parlato di questo finora.

Cioè, provare a scrivere il codice al di fuori di $.ready();

0

Mi sono imbattuto in questo, nel mio caso era dovuto utilizzare UI-Router e con un nome di stato duplicato.

1

In questo caso sembra che l'errore è stato causato da questo:

$locationProvider.html5mode(true); <-- mode should be capital 'M'. 
+0

Grazie, il mio errore è stato: '$ locationProvider.html5Moode (true);' cercavo ore ... – Thomas

Problemi correlati