2014-09-04 6 views
9

Sto lavorando a un'app web AngularJS utilizzando lo ngbp framework (precedentemente ng-boilerplate) che per impostazione predefinita utilizza AngularJS 1.2. Il progetto è nelle fasi iniziali, quindi stiamo sperimentando l'utilizzo di AngularJS 1.3 anziché di 1.2, in quanto ha alcune funzioni interessanti che vorremmo utilizzare. Stiamo lavorando anche partendo dal presupposto che AngularJS 1.3 sarà probabilmente la versione di rilascio quando andremo a vivere.AngularJS 1.3 con framework ngbp non viene caricato nel browser chrome quando si utilizza ng-strict-di

Quindi ho semplicemente cambiato il numero di versione di AngularJS nel file bower.json e tutto sembra funzionare correttamente in Chrome, Safari e Firefox tranne quando abilito un'iniezione di dipendenza rigorosa (ng-strict-di). Quando la modalità DI è attiva, viene visualizzato l'errore seguente (more detail here), ma si verifica solo in Chrome (FF & Safari funzionano entrambi come previsto).

Failed to instantiate module ng due to: 
Error: [$injector:strictdi] function($provide) is not using explicit annotation and cannot be invoked in strict mode 
http://errors.angularjs.org/1.3.0-build.3121+sha.a4520a7/...) 
    at http://localhost:8080/assets/ngbp-0.3.2.js:87:12 
    at annotate (http://localhost:8080/assets/ngbp-0.3.2.js:3352:17) 
    at Object.invoke (http://localhost:8080/assets/ngbp-0.3.2.js:4036:21) 
    at runInvokeQueue (http://localhost:8080/assets/ngbp-0.3.2.js:3964:35) 
    at http://localhost:8080/assets/ngbp-0.3.2.js:3973:11 
    at forEach (http://localhost:8080/assets/ngbp-0.3.2.js:338:20) 
    at loadModules (http://localhost:8080/assets/ngbp-0.3.2.js:3954:5) 
    at createInjector (http://localhost:8080/assets/ngbp-0.3.2.js:3894:11) 
    at doBootstrap (http://localhost:8080/assets/ngbp-0.3.2.js:1494:20) 
    at bootstrap (http://localhost:8080/assets/ngbp-0.3.2.js:1509:12 

Sembra che per qualche motivo il codice sorgente angolare si sta venendo a mancare il test DI rigorosa e quindi non verrà caricato nel browser Chrome all'interno del quadro ngbp. L'errore sopra riportato proviene da un nuovo clone di ngbp con l'unica modifica della versione di AngularJS (1.3), non del nostro progetto attuale (sebbene l'errore sia lo stesso in entrambi i casi). So che questa versione di ngbp non supporta ufficialmente Angular 1.3 ma come ho detto l'app sembra funzionare bene con questa modifica, anche se non riesce questo test. Mi chiedo se qualcuno potrebbe avere qualche idea di ciò che sta causando questo errore e se sarebbe sconsigliato procedere con questa combinazione di AngularJS 1.3 e ngbp (versione: 0.3.2)? C'è qualcos'altro in ngbp che deve essere cambiato insieme alla versione di AngularJS?

Se aiuta a servire i file localmente tramite cd ../bin; http-server -p 8080. Se qualche altra informazione mi aiutasse, fammelo sapere e sarei felice di fornirla se possibile.

Grazie per il vostro tempo.

EDIT: Se serve ho testato su OS X 10.9.4 con le seguenti versioni di browser:

  • Chrome (versione 36.0.1985.143)
  • 64 bit Chrome (versione 37.0.2062.94)
  • Firefox (31,0)
  • Safari (versione 7.0.5 (9537.77.4))
+0

stai usando batarang? – psp

+0

@psp Grazie per aver risposto. Uso batarang ma non è particolarmente utile in questo caso poiché AngularJS non viene mai caricato in Chrome, quindi non c'è nulla da analizzare per batarang. – jason

+0

questo è probabilmente il problema allora, ha avuto un simile tempo fa – psp

risposta

18

Sembra che si potrebbero utilizzare batarang, non è così funziona bene con ng-strict-di. Prova a disattivare batarang dagli strumenti di sviluppo di Google Chrome e l'app dovrebbe riavviarsi normalmente.


[modifica] AngularJS Batarang ora supporta ng-strict-di dal v0.5.0. Questo errore non dovrebbe più accadere.

+0

Sì! Questo era assolutamente il problema! Non mi sarebbe mai venuto in mente che il batarang stesse interferendo, ma sicuramente disabilitarlo ha funzionato. Grazie mille per il vostro aiuto! – jason

+3

corrispondente batarang problema: https://github.com/angular/angularjs-batarang/issues/138 – Offirmo

+1

Grazie, mi hai salvato un sacco di tempo! Non avrei mai immaginato che fosse Batarang. Non so perché l'ho installato in primo luogo .. –

Problemi correlati