在 AngularJS 应用程序中形成适当的结构

Forming proper structure inside AngularJS application

本文关键字:结构 AngularJS 应用程序      更新时间:2023-09-26

假设我的数据库中有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