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

时间:2016-02-20 22:17:34

标签: javascript angularjs structure

假设我的数据库中有10个模型(表),我想基于该数据库构建一个AngularJS应用程序。我的问题是形成应用程序的AngularJS结构时的最佳实践是什么?

我应该在应用程序中声明1个模块并将该模块用于我的所有服务和控制器吗?

当我有以下场景时:学生模型和教师模型......我应该为学生和教师创建单独的controller.js文件,我应该为学生和教师创建单独的service.js文件吗?或者所有服务都可以保存在一个JS文件中?有人可以帮我解决这个问题吗?我真的很想听到那些在使用AngularJS应用程序时有些“生活”经验的人吗?

谢谢堆!

2 个答案:

答案 0 :(得分:1)

以下是我的观点,但它对我来说效果很好。

每个后端控制器可以有一个服务,至少我希望如何映射它。例如,如果您有一堆restful端点来操作教师表,那么您可以在Angular中使用Teacher服务来执行这些休息操作。然后,您还可以使用单独的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中的模板,带有views / teachers / show.html等的showTeacherController连接起来。同样适合学生。

但这实际上取决于。你的前端可能不会遵循严格的宁静风格,也许它不应该。我喜欢有一个控制器页面,但随着页面变得越来越复杂,可能需要将其分解为从页面控制器继承的子控制器。

最后,对于模块,我只会使用一个模块来处理整个应用程序,除非您的应用程序非常庞大。它让事情变得简单。

带上一粒盐。这只是我的意见,可能会或可能不适合您,具体取决于您尝试构建的内容。

答案 1 :(得分:1)

使用生成器帮助您整理应用程序。有许多,所以你可能需要尝试一些,直到你找到一个你喜欢的。我喜欢这个:https://github.com/Iteam1337/generator-mrwhite