角结构
当你构建一个有角度的应用程序时,你应该尽可能地分开以使你的代码具有可读性。您应该为网络应用程序的每个页面/部分创建一个模块。
Example
Here是这种类型结构的一个示例,我编写了它并将其用作角度应用程序的基础。
应用程序文件夹
该文件夹包含所有组件和路线。
路线.js
该文件包含您的项目的状态并且是它自己的模块
app.js
该文件只是您可以将所有其他模块调用为依赖项的基础。
var app = angular.module("myApp", [
'ui.bootstrap',
'ngAnimate',
'myAppRouter',
'myAppHomeCtrl',
'myAppHomeService',
'myAppNavbarDirective',
'myAppNavbarService',
'myAppLoginCtrl',
'myAppLoginService'
]);
您可以看到此处编写和添加的所有不同模块。看到这个 myApp 的名字了吗?我们在 html 中称这部分为
<html ng-app="myApp">
成分
这将包含诸如“home”和“contact”之类的内容,这些文件夹应该包含小自包含 html、控制器和服务中所需的所有内容。
控制器/模块
这是真正回答您问题的部分,要为控制器添加新模块,请执行以下操作。
angular.module('myAppHomeCtrl', []).controller('homeCtrl', ['$scope', 'homeContent', function($scope, homeContent){
$scope.dataset = homeContent.getContent();
$scope.header = homeContent.getHeader();
$scope.subheading = homeContent.getSubheader();
}]);
服务/工厂
所以你可以看到,在我们称为工厂的模块中,它也在这个文件夹中,看起来像这样。
angular.module('myAppHomeService', [])
.factory('homeContent', function(){
return {
getHeader: function(){
return "Welcome Human";
},
getSubheader: function(){
return "To Joe's Awesome Website";
},
};
});
返回index.html
所以回到我们的索引中,我们可以添加所有这些模块<script>
像这样的标签。
<!-- Angular Modules -->
<script type="text/javascript" src="app/app.module.js"></script>
<script type="text/javascript" src="app/app.routes.js"></script>
<script type="text/javascript" src="app/components/home/homeCtrl.js"></script>
<script type="text/javascript" src="app/components/home/homeService.js"></script>
<script type="text/javascript" src="app/shared/navigation-bar/navbarDirective.js"></script>
<script type="text/javascript" src="app/shared/navigation-bar/navbarService.js"></script>
<script type="text/javascript" src="app/components/login/loginCtrl.js"></script>
<script type="text/javascript" src="app/components/login/loginService.js"></script>
在生产中,您将缩小所有这些,但您可以在开发中像这样调用它们。
结论
最后,我将做一个总结,以确保您拥有让模块正常工作所需的一切
- 转到您的 app.js (主角度模块)并将名称应用到它。
- 转到您的组件并创建新模块
- 转到index.html并添加链接到新模块的脚本标签
- 现在您可以根据需要使用控制器和所有组件
我希望这篇关于角度结构的指南对您有所帮助。祝你好运