多个文件的AngularJS约定

ele*_*nso 5 javascript convention angularjs

我想知道在AngularJS中是否有避免单片js文件的最佳实践.

我想避免使用非常大的controllers.js/filters.js/services.js文件.相反,为了便于管理,我希望将每个控制器/过滤器/服务放在自己的文件中.

我想知道,就目前的目录结构和命名约定而言,这种方法是否有推荐的约定.

另外,对于我创建的每个新文件,避免在app/index.html中添加脚本标记的最佳方法是什么?

art*_*tch 2

您可以检查这个应用程序:https ://github.com/angular-app/angular-app

这是一个很好的例子。

另外,避免在我创建的每个新文件的 app/index.html 中添加脚本标记的最佳方法是什么?

例如,它可以由grunt watcher 自动化。我使用这样的配置来完成此任务:

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.');

        });
Run Code Online (Sandbox Code Playgroud)

索引.html.tmpl :

<html>
<body>
    ...
    <%=scripts%>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)