angularjs+springMvc学习笔记

回调

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

异步

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

clipboard.png

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

跨域CROS

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

按照需求进行改写就好了sql

clipboard.png

创建数据表(后台)

在thinkphp中,咱们经过navicatMysql数据库工具创建数据表,而在spring中,则是经过新建类来创建数据表,对应关系以下
clipboard.pngthinkphp

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

clipboard.png

而后创建接口来访问和操做数据跨域

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

clipboard.png

官方推荐使用AUTO,可是因为咱们的数据库存在一些问题,只能使用IDENTITY来暂时解决app

经过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的开发更加规范,很容易作到代码风格的统一和程序的易读,能够将更多的精力投放到功能的设计和实现上来

相关文章
相关标签/搜索