在我的 Angular 应用程序中,我想以模块化方式加载 css 文件——每个模块都有自己的 css 文件。这样我可以轻松地添加、删除或移动模块。
到目前为止,我发现最好的方法是创建一个服务:
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);
}
}
};
});
每个控制器加载它的模板 css。虽然我注入了路径(通过另一个服务),但感觉就像我打破了逻辑和视图之间的分离。
还有其他优雅的方式(不包括将css文件打包成一个大文件)?