Utilisez require.js pour gérer les dépendances angulaires et avez trouvé les problèmes suivants (téléchargez directement le code) :
Ce qui suit est main.js :------------------------------------------------- --------- -------
require.config({
paths: {
"angular": "../vender/angular-1.5.8/angular",
"jquery": "../vender/jquery-1.11.3",
"angularRoute": "../vender/angular-1.5.8/angular-route.min",
"angularResource": "../vender/angular-1.5.8/angular-resource.min",
"domReady":"../vender/domReady",
},
shim:{
angular:{
exports :"angular"
},
angularRoute:{
deps:["angular"]
},
angularResource:{
deps:["angular"]
},
},
waitSeconds: 0
});
exiger([
'app',
'bootstrap',
],function(app){
'use scrict';
app.config(['$routeProvider',function($routeProvider){
console.log($routeProvider);
}])
})
Ce qui suit est app.js :---------------------------------
définir(['angulaire'],
function(angular){
console.log('app');
return angular.module('app',[]);
}
);
Ce qui suit est bootstrap.js :--------------------------------
define(['angular','domReady'],function(angular,domReady){
domReady(function(){
console.log('boot');
angular.bootstrap(document,['app']);
})
})
Aucune erreur n'est signalée ci-dessus. Voici le résultat du fonctionnement normal :
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Quand j'ai ajouté le module dépendant (angularResource) dans app.js comme suit :
define(['angular','angularResource'],
function(angular){
console.log('app');
return angular.module('app',['ngResource']);
}
);
Une erreur sera signalée à ce moment : comme suit
Vous pouvez voir que l'application ne s'imprime pas, pourquoi ? Introduisez simplement un module.
Si vous introduisez une application dépendante dans bootstrap.js : comme suit
define(['angular','domReady','app'],function(angular,domReady){
domReady(function(){
console.log('boot');
angular.bootstrap(document,['app']);
})
})
ne signalera pas d'erreur.
Mais je ne comprends pas pourquoi l’introduction d’un AngularResource avant provoquera une erreur ?
Étant donné que toutes les sous-pages de l'application utilisent angulaire, il n'est pas nécessaire de charger angulaire à la demande