使用AngularJS编写的一个考试管理系统
共有三个模块:1.题目列表 2.题目管理 3.手工组卷
1.页面跳转功能:
在首页我们把每个页面所共有的部分展示出来,而其他页面则是通过angular的路由机制来加载(通过给a标签配置地址,
然后再配置路由,来指定相应的templateUrl地址和controller 然后把要加载的页面加载在ng-view标签里面)
2.题型、难度、方向、知识点的获取:
数据的获取通过的是创建一个公共的服务,定义获取数据的方法,用angular中的ajax 即$http去访问后台数据 把拿到的数据当作回调函数的
参数返回,然后把服务注入控制器 ,通过在控制器中调用方法,把回调函数传回的参数绑定到作用域中,再去页面中进行遍历。
3.题目的筛选功能:
题目的筛选依旧是通过angular的路由,angular路由还有一个强大的内置服务是$routeParams 可以获取url地址上所携带的参数
通过这一点 我们可以在通过在当前url地址上携带参数,这样当我们点击哪个a标签就可以动态的获取当前a标签的id
然后用$routeParams来获取id组成的对象传递给后台去查询(我们所做的工作只是获取需要查询的id 而真正的查询是后台
来完成的)
4.删除题目功能:
通过$routeParams获取到要删除的题目的id,传递给后台
5.审核功能:
通过$routeParams获取到要审核的题目的id和审核状态, 传递给后台
6.单个添加题目功能:
这里只需要通过双向数据绑定的方式把数据传递给后台,但有一个难点是单选题和多选题选项的正确答案通过
双向数据绑定并不好获取,最后采取的是通过指令来完成, 通过在指令的链接阶段来操作element,给element绑定一个change
事件 当选项改变的时候 ,把当前选项push到scope规定的数组中,这里还有一点需要主要的是事在这里改变scope
只是单项的,并不会映射到ng-model中,所以我们需要让scope强制消化
7.手工组卷功能:
当点击添加题目的时候跳转到所有题目的页面 在所有题目页面 在相应的题目下面点击添加题目的时候携带参数再跳转到
手工组卷 也是通过路由携带参数实现的,但是这里有一点是当我们在手工组卷点击添加题目的时候写入一些数据,
然后在列表页添加完题目过来会发现之前的数据清空了,这是因为模板被重新加载一边,绑定的数据成了最原始的状态,
解决这个问题的方法是 把数据放在服务中,因为服务是单例的
-
Notifications
You must be signed in to change notification settings - Fork 0
OneAndOnly1111/exam
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
使用AngularJS编写的一个考试管理系统
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published