在 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