Dans mon application Angular, je veux charger les fichiers css de manière modulaire - chaque module a son propre fichier css. De cette façon, je peux ajouter, supprimer ou déplacer des modules facilement.
La meilleure façon de procéder que j'ai trouvée jusqu'à présent est de créer un service :
angular.module('cssLoadingService', []).factory("CssLoadingService", function () {
return {
loadCss: function (url) {
if (document.createStyleSheet) { //IE
document.createStyleSheet(url);
} else {
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = url;
document.getElementsByTagName("head")[0].appendChild(link);
}
}
};
});
Chaque contrôleur charge son modèle css. Bien que j'injecte le chemin (par un autre service), j'ai l'impression de rompre la séparation entre la logique et la vue.
Existe-t-il une autre méthode élégante (qui n'inclut pas le regroupement des fichiers css dans un énorme fichier) ?