Sto costruendo una Rubrica per imparare l'angolazione e farlo funzionare bene fino a quando non cerco di utilizzare il gestore del percorso. Il problema è con il caricamento del gestore di rotta angolare tramite richiesta. Ricevo il seguente errore "Oggetto non catturato".AngularJS, requireJS e ngRoute
Ci sono state domande a riguardo ma sono state rimosse dall'utente, e altre risposte indicano di non aver incluso la dipendenza ngRoute nell'elenco delle dipendenze ng.module, o che non stanno utilizzando affatto. Non ho molta fortuna a trovare una risposta!
ho il file di HTML che include un file di configurazione richiede:
requirejs.config({
paths: {
'jquery': ['//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min'],
'angular': ['//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min','angular_1.2.16.min'],
'angular-route': ['//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-route.min','angular-route_1.2.16.min'],
},
shim: {
'jquery': {
exports: 'jquery'
},
'angular': {
exports: 'angular'
},
'angular-route': {
exports: 'ngRoute',
deps: ['angular']
}
},
baseUrl: 'js/lib'
})
require(['modules/ContactsMod'], function() { });
e questo è il file ContactsMod.js chiamato alla fine del file di configurazione:
define(['jquery', 'angular-route','angular','controllers/ContactsCtrl','routes/ContactsRout'],function($,ngRoute,ng,controller,router) {
// var contactsApp = ng.module('contactsApp', [ngRoute]);
// contactsApp.config(function ($routeProvider, $locationProvider){
// $log.debug("Configuring $routeProvider...");
//
// $locationProvider.html5Mode(true); //?????
//
// $routeProvider
// .when('/', {
// templateUrl : "views/Contacts.html",
// controller : "controller"
// })
// .otherwise({ redirectTo: '/' })
// })
var contactsApp = ng.module('contactsApp', []);
contactsApp.controller(controller);
ng.bootstrap(document, ['contactsApp']);
});
Il commentato la sezione fuori è la parte che sto cercando di capire. La versione sopra funziona, ma quando provo ad aggiungere la dipendenza ngRoute alla chiamata ng.module nella parte commentata, ottengo l'errore menzionato.
Posso vedere che tutte le risorse sono state caricate prima che il modulo venga chiamato. Ma posso anche vedere che ngRoute si disconnette come non definito quindi ha senso che non funzioni! Ho provato un certo numero di diverse varianti di configurazione. Come includere la rotta angolare come dipendenza angolare (che fornisce lo stesso errore più un altro di "Uncaught TypeError: Impossibile leggere la proprietà" modulo "di indefinito").
Riesco a vedere che c'è un'app di semi che utilizza un caricatore asincrono personalizzato invece di richiedere ... cosa consiglia?
Non so come eseguire il debug di questo problema, qualsiasi aiuto o indicazioni apprezzate!
Non so molto su RequireJS ma sono abbastanza sicuro che angular.module si aspetta un array di stringhe come sue dipendenze, ad es. 'Ng.module ('contactsApp', ['ngRoute']); ' – ivarni
Grazie - Ho corretto questo ... ma lo stesso errore non penso che il modulo sia disponibile in ambito. – GetafixIT
Hmm, è strano. Dovrebbe caricare il modulo ngRoute nello stesso modo in cui carica angolare, almeno così si potrebbe pensare. – ivarni