在 AngularJS 应用程序中形成适当的结构
Forming proper structure inside AngularJS application
假设我的数据库中有10个模型(表),我想基于该数据库构建一个AngularJS应用程序。我的问题是,在形成AngularJS应用程序结构时,最佳实践是什么?
我是否应该在应用程序中声明 1 个模块并将该模块用于我的所有服务和控制器?
当我有以下场景时:学生模型和教师模型...我是否应该为学生和教师创建单独的控制器.js文件,是否应该为学生和教师创建单独的服务.js文件?或者所有服务都可以保存在一个JS文件中?有人可以为我澄清这一点吗?我真的很想从那些有使用 AngularJS 应用程序的一些"现场"经验的人那里听到这一点?
谢谢堆!
以下只是我的意见,但对我来说效果很好。
每个后端控制器可以有一个服务,至少我喜欢这样映射它。例如,如果你有一堆 restful 端点来操作 teachers 表,你可以在 Angular 中有一个 Teacher
服务来执行这些 restful 操作。然后,您还可以拥有一个单独的Student
服务,该服务可以对数据库的学生执行休息操作。
至于控制器,这取决于。如果使用路由,最好的办法是每个路由使用一个控制器。在任何情况下,控制器更像是视图的容器,它们不表示数据。话虽如此,如果你打算围绕数据构建你的 Angular 应用程序,你可以有这样的东西(至少这就是我喜欢构建我的 Angular 应用程序的方式):
-- app.js
-- /services
-- teacher.js
-- student.js
-- /controllers
-- /teachers
-- listTeachersController.js
-- showTeacherController.js
-- editTeacherController.js
-- /students
-- listStudentsController.js
-- showStudentController.js
-- editStudentController.js
-- /views
-- /teachers
-- index.html
-- show.html
-- edit.html
-- /students
-- index.html
-- show.html
-- edit.html
-- /directives
...
-- /interceptors
...
-- /filters
在你的路由中,你可以将你的listTeachersController与 views/teachers/index.html 中的模板挂钩,将showTeacherController与 views/teachers/show.html 挂钩,等等,对学生来说也是如此。
但这真的取决于。您的前端可能不会遵循严格的休息风格,也许不应该。我喜欢有一个控制器页面,但随着页面变得越来越复杂,可能是时候将其分解为从页面控制器继承的子控制器了。
最后,至于模块,我只会为整个应用程序使用一个模块,除非您的应用程序很大。它使事情变得简单。
对此持保留态度。这只是我的意见,可能会也可能不适合您,具体取决于您要构建的内容。
使用生成器来帮助您组织应用程序。有很多,所以你可能不得不尝试一些,直到找到你喜欢的。我喜欢这个:https://github.com/Iteam1337/generator-mrwhite
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 使用angularjs和node.js时的Web应用程序文件夹结构
- AngularJS ng下拉树结构的模型定义
- AngularJS ui路由器状态结构
- 如何在具有相同DOM结构的AngularJS中转换$(#someid)
- 基于其他数据结构更新 AngularJS 中的数据结构
- AngularJS ng repeat指令,具有复杂的嵌套数据结构和动态键
- Angularjs:实现与工厂相同的服务结构
- 用于访问父范围的控制器层次结构异常:AngularJS
- 在 AngularJS 应用程序中形成适当的结构
- AngularJS:目录结构(例如模块化编程)是否会影响加载时间
- 用于可重用数据可视化的 Angularjs 结构
- AngularJS会干扰JSON结构
- Angularjs中ajax的单一方法体系结构
- angularJS:将重新排序列表与数据结构同步
- 如何在JavaScript中对此数据结构进行建模?(AngularJS)
- 使用angularjs快速入门MVC结构
- AngularJS应用程序文件结构
- Laravel+AngularJS应用程序结构
- 什么是两个AngularJS应用程序的最佳结构?