和我们在javaee中的顺序完全一致,我们在此的顺序仍然是配置路由,建立C层,建立V层。
# 手动创建
## 配置路由
app/scripts/app.js
我们先删除冗余的about路由,并保存首页与默认路由.同时增加teacher路由。
```
...
// 路由配置
.config(function($routeProvider) {
$routeProvider
// action = /, 控制器 = MainCtrl, 控制器别名 = main, V层模板 = views/main.html
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl',
controllerAs: 'main'
})
.when('/teacher/', {
templateUrl: 'views/teacher/index.html',
controller: 'TeacherIndexCtrl',
controllerAs: 'teacherIndex'
})
// 默认路由:如果以上条件都不符合,则跳转至'/'路由
.otherwise({
redirectTo: '/'
});
});
```
## 建立C层
app/scripts/controllers/teacher/index.js
```
'use strict';
/**
* 教师管理,列表
*/
angular.module('webAppApp')
.controller('TeacherIndexCtrl', function () {
console.log('success');
});
```
## 引用C层JS文件
建立完C层,如果想使其生效,还需要在index.html过行引用。当然了,由于about这个控制器,我们已经不需要了,所以此时还需要把引入about控制器的JS代码删除掉.
app/index.html
```
<!-- build:js({.tmp,app}) scripts/scripts.js -->
<script src="scripts/app.js"></script>
<script src="scripts/controllers/main.js"></script>
<script src="scripts/controllers/teacher/index.js"></script>
<!-- endbuild -->
```
## 建立V层
app/views/teacher/index.html
```
<table class="table">
<tr>
<th>序号</th>
<th>姓名</th>
<th>用户名</th>
<th>性别</th>
<th>邮箱</th>
</tr>
<tr>
<td>1</td>
<td>张三</td>
<td>zhangsan</td>
<td>男</td>
<td>zhangsan@yunzhiclub.com</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
<td>lisi</td>
<td>女</td>
<td>lisi@yunzhiclub.com</td>
</tr>
</table>
```
## 修改首页菜单
app/index.html
```
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="#!/">梦云智</a>
</div>
<div class="collapse navbar-collapse" id="js-navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#!/a">首页</a></li>
<li><a ng-href="#!/teacher/">教师管理</a></li>
</ul>
</div>
</div>
```
## 测试
[http://localhost:9000/#!/teacher/](http://localhost:9000/#!/teacher/)
![https://box.kancloud.cn/b96e38a9c4c4a56115d8fb746fa651de_1304x554.png](https://box.kancloud.cn/b96e38a9c4c4a56115d8fb746fa651de_1304x554.png)
# 自动创建
我们大概每新建一个C层,都需要经历以上的几步,那么grunt是不是可以为我们自动处理的。很遗憾,grunt也想这样做,但却被yoman捷足先登了。
我们来看看使用yoman是如何完成上述工作的。我们先恢复以上几个文件。
然后我们打开shell(以后我们说到shell时,对window平台而言,均指gitshell),并进入WebApp文件夹。然后输入:
`$ yo angular:route teacher/index --uri=teacher/`
> 此时,我们尽量不要关闭正在运行grunt serve的shell, 而是重新打开一个新shell.
回车确认后,让我们看看发生了什么:
1. 自动在app/scripts/app.js中添加了路由.
2. 自动创建了app/scripts/controllers/teacher/index.js,并写好了示例代码。
3. 自动创建了app/views/teacher/index.html,并写好了示例代码。
4. 自动修改了app/index.html,并为我们添加了引用的代码
我们现在需要做的,仅仅是修改app/views/teacher/index.html,然后加入我们想要的示例代码就OK了。
最后,我们去修改app/index.html关于导航部分的代码。
再点击导航中的教师管理,我们同样得到了相同的结果。但效率却得到了大幅提升。
> 官网:[https://github.com/yeoman/generator-angular#route](https://github.com/yeoman/generator-angular#route)
- README
- 第一章:准备
- 第二章:Hello World!
- 第一节:查看工程文件
- 第二节:JDK、JRE与环境变量
- 第三节:index.jsp
- 第三章:Hello Struts
- 第一节:Web.xml
- 第二节:单入口
- 第三节:Hello Struts
- 第四节:触发C层
- 第四章:建立数据表
- 第一节:建立实体类
- 第二节:测试一
- 第三节:测试二
- 第四节:引入Hibernate
- 第五节:配置Hibernate
- 第六节:建立连接
- 第七节:实体类映射数据表
- 第八节:完善数据表
- 第五章:教师管理
- 第一节:增加数据--add
- 第二节:增加数据--save
- 1 获取传入数据数据
- 2 数据写入测试
- 3 对接C层
- 第三节:数据列表
- 1 获取数据
- 2 重构代码
- 3 C层对接--初始化
- 4 C层添加数据
- 5 V层显示数据
- 6 获取数据库中数据
- 7 显示性别
- 8 分页
- 9 条件查询
- 第四节:修改数据
- 1 edit
- 2 update
- 第五节:删除数据
- 第六节:总结
- 第六章:重构C层
- 第一节:继承ActionSupport类
- 第二节:数据验证
- 第七章:前台分离(前台)
- 第一节:环境搭建
- 第二节:运行环境
- 第三节:共享开发环境
- 第四节:生产环境
- 第八章:前台开发(前台)
- 第一节:本地化
- 第二节:教师列表
- 1 引入M层
- 2 模拟后台返回数据
- 3 C与M对接
- 4 C与V对接
- 第九章:前后台对接(前后台)
- 第一节:后台输出json(后台)
- 第二节:对接前台(全栈)
- 第二节:对接API(前台)
- 第二节:跨域请求(后台)
- 第三节:重构代码(前台)
- 第十章:重构后台M层
- 第一节:数据访问DAO层
- 第二节:项目整体重构
- 第十一章:用户登陆(前后台)
- 第一节:制定规范
- 第二节:定制测试用例
- 第三节:后台输入测试代码(后台)
- 第四节:postman(后台)
- 第五节:新建用户登陆模块(前台)
- 第六节:代码重构(前台)
- 第十二章:班级管理(前后台)
- 第一节:班级列表
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第二节:Add
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第三节:Save
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第四节:Edit
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第五节:Update
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第六节:Delete
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第七节:小结
- 第十三章:班级管理(API)
- 第一节:ER图
- 第二节:create
- 1 实体层
- 2 dao层
- 3 service(server)层
- 4 action层
- 第三节:ManyToOne
- 第四节:Read
- 1 service(server)层
- 2 action层
- 第五节:update
- 1 service(server)层
- 2 action层
- 第六节:update
- 第十四章:重构服务层