我想知道在AngularJS中是否有避免单片js文件的最佳实践。
我想避免使用非常大的controllers.js / filters.js / services.js文件。相反,为了便于管理,我希望将每个控制器/过滤器/服务放在自己的文件中。
我想知道,就目前的目录结构和命名约定而言,如果这种方法有推荐的约定。
另外,对于我创建的每个新文件,避免在app / index.html中添加脚本标记的最佳方法是什么?
答案 0 :(得分:2)
您可以查看此应用:https://github.com/angular-app/angular-app
这是一个很好的例子。
另外,对于我创建的每个新文件,避免在app / index.html中添加脚本标记的最佳方法是什么?
例如,它可以由grunt观察者自动完成。我使用这样的配置来完成这项任务:
grunt.initConfig({
index: {
files: ['app/js/**/*.js'],
tasks: 'index:scripts'
}
})
grunt.registerMultiTask('index', 'Create index.html',
function() {
var files = grunt._watch_changed_files || grunt.file.expand(this.data);
var now = new Date().getTime();
var scripts_str = '';
var tpl = grunt.file.read('app/index.html.tmpl');
files.forEach(function(file) {
file = file.replace(/^app\//, '');
scripts_str += '<script src="' + file + '?bust=' + now + '"></script>' + "\n";
});
grunt.file.write('app/index.html', grunt.template.process(tpl, {
data: {
scripts: scripts_str
}
}))
console.log('File "index.html" created.');
});
index.html.tmpl :
<html>
<body>
...
<%=scripts%>
</body>
</html>
答案 1 :(得分:0)
有一些公约,并没有出现任何“最佳实践”。
话虽这么说,我喜欢的两个约定将每个控制器/过滤器/服务/等放在它们自己的目录中。就目录结构而言,对于较小的项目,我已经看到了每种类型文件的目录。对于大型项目,我已经看到每个模块的目录,其中包含该文件夹中该模块的所有控制器/过滤器/服务。这也迫使您将应用程序拆分为模块,这是一个很好的副作用。