假设我的数据库中有10个模型(表),我想基于该数据库构建一个AngularJS应用程序。我的问题是形成应用程序的AngularJS结构时的最佳实践是什么?
我应该在应用程序中声明1个模块并将该模块用于我的所有服务和控制器吗?
当我有以下场景时:学生模型和教师模型......我应该为学生和教师创建单独的controller.js文件,我应该为学生和教师创建单独的service.js文件吗?或者所有服务都可以保存在一个JS文件中?有人可以帮我解决这个问题吗?我真的很想听到那些在使用AngularJS应用程序时有些“生活”经验的人吗?
谢谢堆!
答案 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