分离角度路由、控制器和服务
Separating Angular Routing, Controllers, Services
您将不得不原谅这篇文章缺少代码示例;然而,我希望这个问题足够直截了当,不需要回答。
我是Angular的新手。我正在做的项目不是很大。将控制器放在一个文件中,将路由放在另一个文件,将服务放在最后一个文件是否可行?如果是,我该如何管理依赖项,以便从路由文件引用我的控制器?
注意:这只回答文件/文件夹结构。理想情况下,这将被编译成一个单独的文件,并被引用到您的应用程序中。或者编译为单独包含的特征文件。
根据约翰·帕帕的指南:
https://github.com/johnpapa/angular-styleguide#locate
Todd Motto
http://toddmotto.com/opinionated-angular-js-styleguide-for-teams/
https://github.com/toddmotto/angularjs-styleguide
对于较小的项目,IMO的两种最佳方法是:
|-- app.js
|-- controllers/
| |-- MainCtrl.js
| |-- AnotherCtrl.js
|-- filters/
| |-- MainFilter.js
| |-- AnotherFilter.js
|-- services/
| |-- MainService.js
| |-- AnotherService.js
|-- directives/
| |-- MainDirective.js
| |-- AnotherDirective.js
或者对于更大的项目,功能驱动:
|-- app.js
|-- dashboard/
| |-- DashboardService.js
| |-- DashboardCtrl.js
|-- login/
| |-- LoginService.js
| |-- LoginCtrl.js
|-- inbox/
| |-- InboxService.js
| |-- InboxCtrl.js
你希望保持文件夹结构相对平坦,这样你就不必花很长时间浏览文件夹来找到你想要的文件。
当然可以。这是angular遵循的正常代码组织行为。由于你是新手,我有一个非常简单的angular应用程序示例。我正在和我的学生一起使用这个应用程序来解释使用angular和node-js的单页应用程序。
你可以在这里找到你所要求的样品的链接https://github.com/mustafamg/CourseManagementSystem/tree/master/public/app
在这个链接中,您可以在app.js中找到路由应用程序准备,而在controllers文件夹中找到controllers。
你只需在html文件中引用app.js,然后引用controller.js
<script src="app.js"></script>
<script src="controller.js"></script>
- 尝试将服务链接到控制器时出现角度问题
- 使用服务(AngularJS)在控制器之间共享数据
- 从AngularJS中的另一个文件中的控制器访问服务
- AngularJS 1.5.x服务未正确绑定,并且未在控制器中更新
- Ionic将firebase注入工厂,同时将控制器和服务保存在不同的文件中
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- Http服务工厂将未定义的返回到Angular中的控制器
- 由控制器调用的服务更改时,Angular未更新视图
- 将Browserify与Angular JS结合使用--将服务传递到控制器中
- 将工厂服务数据发送到控制器,以便在视图中使用
- 角度控制器服务承诺不起作用
- 跨控制器服务的角度json数据
- 使用DOM中的信息创建一个控制器/服务来持久化数据
- 推迟在应用程序运行angularjs上创建控制器/服务
- 将主机配置传递给控制器/服务
- 控制器/服务的最佳实践
- 控制器+服务结构不能正确触发离子切换ng-change
- 未捕获的TypeError: undefined不是函数'当把控制器/服务放在单独的js文件中时
- 一个AngularJS文件中有多少控制器(服务、工厂、指令)
- 我应该保护我的 Angular 控制器/服务免受全局命名空间的影响吗?