angularjs+springMvc学习笔记

回调

说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数
例如,在下面这段代码中,上面定义了两个函数success和error,下面的promise.then(success,error)方法请求成功执行success,失败执行error
clipboard.png

异步

异步的原理我看了网上的一些博客和例子,大都以定时任务setTimeout, setInterval为例子说明,但具体的原理我还是不太明白,我只知道js异步的执行顺序和c/c++的不同
例如,我把上面的success方法中的$scope.teachers = response.data写到外面,即:

clipboard.png

按照c/c++的顺序,当上面promise.then()语句执行完之后,才执行下面的赋值语句,可js的异步处理会直接执行下面的赋值语句,如果在控制台输出teachers,会显示undefined

跨域CROS

在前后台对接时会发生跨域问题
clipboard.png
在spring官方文档有详细的解决方案,如下图
clipboard.png

按照需求进行改写就行了

clipboard.png

建立数据表(后台)

在thinkphp中,我们通过navicatMysql数据库工具建立数据表,而在spring中,则是通过新建类来建立数据表,对应关系如下
clipboard.png

teacher类对应表名,私有属性对应表的各个字段

clipboard.png

然后建立接口来访问和操作数据

这里遇到一个小问题,在定义Teacher类时,设置主键自增

clipboard.png

官方推荐使用AUTO,但是由于我们的数据库存在一些问题,只能使用IDENTITY来暂时解决

通过ui-router定制路由(前台)

ui-router的出现使得路由定制非常简单易用,在安装完ui-router后,改写app.js
clipboard.png

接着,在V层添加ui-view标签就可以实现页面的跳转了

功能性开发(前台)

1.定义路由对应的控制器(ui-router)
2.初始化控制器->yoman命令->yo angular.controller user 生成位置app/scripts/controller/user.js
3.数据绑定至V层(双向绑定)
4.功能开发

功能性开发(后台)

后台
1.增加路由注解
(1)指明方法(get,post,delete,put,patch)
(2)指明地址(例如127.0.0.1:8080/Teacher)
2.有cros设置的,增加cros设置

关于第一步,按照下面的写法改写就行
clipboard.png

@Autowired 自动装置接口实例化的对象
@GetMapping使用的方法

总结

1.第一次接触angularjs与springMVC前后台分离开发的模式,感受到了它比thinkphp强大的原因,非常方便团队分工开发
2.使用注解的方式写程序,就好像给程序注释一样,非常方便,而且易读
3.yoman的自动刷新机制解放了每次写前台F5刷新,在写原型时相当方便,有了angularJs的双向绑定,就再也不会出现thinkphp里十几行长的$this->assign()
4.idea编译器强大的功能省下很多用在程序规范的精力,alt+insert生成模板相当方便,出了错打断点debug可以很快可以发现问题
5.总之,相比于thinkphp,angularJs+springMVC的开发更加规范,很容易做到代码风格的统一和程序的易读,可以将更多的精力投放到功能的设计和实现上来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值