我应该如何包含我的AngularJS项目的代码文件
How should I include the code files for my AngularJS project?
假设我有一个中等大小的AngularJS应用程序,其目录结构类似于以下内容:
/app
----app.js
----index.html
----/functionalityA
--------/views
------------pageA.html
--------/controllers
------------ctrlA.js
------------ctrlB.js
--------/directives
------------directiveA.js
--------/services
------------serviceA.js
------------serviceB.js
----/functionalityB
--------/views
------------pageB.html
--------/controllers
------------ctrlC.js
------------ctrlD.js
--------/directives
------------directiveB.js
--------/services
------------serviceC.js
------------serviceD.js
它有很多文件。我应该如何在我的申请中包括所有这些?
一种方法是将<script>
标签用于index.html
:中的所有标签
<script src="angular.js"></script>
<script src="app.js"></script>
<script src="functionalityA/controllers/ctrlA.js"></script>
<script src="functionalityA/controllers/ctrlB.js"></script>
<script src="functionalityA/directives/directiveA.js"></script>
<script src="functionalityA/services/serviceA.js"></script>
<script src="functionalityA/services/serviceB.js"></script>
<script src="functionalityB/controllers/ctrlC.js"></script>
<script src="functionalityB/controllers/ctrlD.js"></script>
<script src="functionalityB/directives/directiveB.js"></script>
<script src="functionalityB/services/serviceC.js"></script>
<script src="functionalityB/services/serviceD.js"></script>
这是一种可以接受的方法吗?
如果没有,我还可以采取哪些其他方法?
请注意,我的问题是了解包含项目.js
文件的首选方法。我不是在问如何构建我的文件。
将所有这些文件包含在单独的脚本标记中并没有错,但它们将分别创建一个到服务器的单独请求。这不是很有效,因为每个请求都有自己的头和其他膨胀。但是,如果服务器和浏览器都支持HTTP/2,这就不会成为问题。
但是,由于HTTP/2仍然是新的,并且没有得到广泛支持,所以源文件通常被捆绑在一个文件中,或者根据需要延迟加载。
首先,您应该根据文件的函数而不是类型对文件进行分类。
如果你需要JS文件的功能,你需要以这样或那样的方式包含它们。也许只有在需要的时候你才能把它们包括在内。
您可以使用类似Recure JS的库来实现这一点。
或者,您可以在动态视图中包含这些脚本标记,并在头中引用JQuery以动态包含它们。您可以使用ng-include
。
好消息是,如果您以在模块中动态注册的方式放置这些脚本,则这些脚本可以包含控制器和指令。
myApp.config(function($controllerProvider, $provide) {
myApp.controlProvider = $controllerProvider;
myApp.serviceProvider = $provide;
});
myApp.serviceProvider.factory('myDynFactory', function(){
return {
//Whatever you like
}
});
myApp.controlProvider.register('myDynController', [function($scope) {
//Whatever you like
}]);
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- webpack代码拆分了handlerbs文件——结果是文件很大
- 在CodeIgniter视图中将Javascript或jQuery代码作为PHP文件编写可以吗
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- 为什么不't我的ruby代码与javascript文件一起插入
- 通过查询替换/写入文件中的代码
- JavaScript代码,用于在浏览器中显示字节数组中的PDF文件(非base64编码)
- 如何使用d3.js从csv文件中绘制areaplot?请任何人分享代码
- 如何缩小 knockoutjs 代码文件
- 我应该如何包含我的AngularJS项目的代码文件
- 在包含外部js库和js代码文件时使用jquery的noconflict函数
- 我应该根据行数分开我的javascript代码文件吗?
- 如何使用JavaScript在代码文件中找到动态创建的元素
- 打开HTML文件中的代码文件,并转到给定的行号
- XSS阻止传递给JS代码文件的参数
- Javascript asp.net c#multi-objet传递到Js代码文件
- 我们如何从代码文件中调用javascript函数
- 用户不应该既不能下载javascript代码/文件也不能下载css文件