在 AngularJS 应用程序中形成正确的结构
Forming proper structure inside AngularJS application
假设我的数据库中有 10 个模型(表),我想基于该数据库构建一个 AngularJS 应用程序。我的问题是形成 AngularJS 应用程序结构时的最佳做法是什么?
我应该在应用程序中声明 1 个模块并将该模块用于我的所有服务和控制器吗?
当我遇到以下情况:学生模型和教师模型...我应该为学生和教师创建单独的 controller.js 文件,还是应该为学生和教师创建单独的 service.js 文件??或者所有服务都可以放在一个 JS 文件中?有人可以帮我解决这个问题吗?我真的很想听听有 "live" 使用 AngularJS 应用程序经验的人的意见?
非常感谢!
以下只是我的意见,但对我来说效果很好。
每个后端控制器可以有一个服务,至少我喜欢这样映射它。例如,如果你有一堆 restful 端点来操纵教师 table,你可以在 Angular 中有一个 Teacher
服务可以执行这些 restful动作。然后,您还可以拥有一个单独的 Student
服务,该服务可以对数据库的学生执行 restful 操作。
至于控制器,则视情况而定。如果您使用路线,最好的办法是每条路线配备一个控制器。无论如何,您的控制器更像是视图的容器,它们不代表数据。话虽如此,如果你打算围绕数据构建你的 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 等连接起来。相同对于学生。
但这真的取决于。您的前端可能不遵循严格的 restful 风格,也许不应该。我喜欢有一个控制器页面,但随着页面变得越来越复杂,可能是时候将它分解成继承自页面控制器的子控制器了。
最后,关于模块,我会为整个应用程序使用一个模块,除非您的应用程序很大。它使事情变得简单。
对此持保留态度。这只是我的意见,可能适合也可能不适合您,具体取决于您要构建的内容。
使用生成器来帮助您组织应用程序。有很多,所以您可能需要尝试一些,直到找到您喜欢的。我喜欢这个:https://github.com/Iteam1337/generator-mrwhite
假设我的数据库中有 10 个模型(表),我想基于该数据库构建一个 AngularJS 应用程序。我的问题是形成 AngularJS 应用程序结构时的最佳做法是什么?
我应该在应用程序中声明 1 个模块并将该模块用于我的所有服务和控制器吗?
当我遇到以下情况:学生模型和教师模型...我应该为学生和教师创建单独的 controller.js 文件,还是应该为学生和教师创建单独的 service.js 文件??或者所有服务都可以放在一个 JS 文件中?有人可以帮我解决这个问题吗?我真的很想听听有 "live" 使用 AngularJS 应用程序经验的人的意见?
非常感谢!
以下只是我的意见,但对我来说效果很好。
每个后端控制器可以有一个服务,至少我喜欢这样映射它。例如,如果你有一堆 restful 端点来操纵教师 table,你可以在 Angular 中有一个 Teacher
服务可以执行这些 restful动作。然后,您还可以拥有一个单独的 Student
服务,该服务可以对数据库的学生执行 restful 操作。
至于控制器,则视情况而定。如果您使用路线,最好的办法是每条路线配备一个控制器。无论如何,您的控制器更像是视图的容器,它们不代表数据。话虽如此,如果你打算围绕数据构建你的 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 等连接起来。相同对于学生。
但这真的取决于。您的前端可能不遵循严格的 restful 风格,也许不应该。我喜欢有一个控制器页面,但随着页面变得越来越复杂,可能是时候将它分解成继承自页面控制器的子控制器了。
最后,关于模块,我会为整个应用程序使用一个模块,除非您的应用程序很大。它使事情变得简单。
对此持保留态度。这只是我的意见,可能适合也可能不适合您,具体取决于您要构建的内容。
使用生成器来帮助您组织应用程序。有很多,所以您可能需要尝试一些,直到找到您喜欢的。我喜欢这个:https://github.com/Iteam1337/generator-mrwhite