AngularJs-todoMVC 源码解释
github上的todoMVC仓库是一个帮助你选择前端MVC框架的项目
项目中包含了绝大多数前端MVC框架实现Todo application的范例,让你能比较不同的框架实现同一个应用的差异。进而让你做出最佳选择。
Todo application的具体效果,可以看这个http://todomvc.com/examples/angularjs/#/
对于新手来说,是个很不错的学习范例。
本文选取的是其中的angularJs范例,对其做了简单分析。
分析源码已经上传至github,https://github.com/BryanAdamss/SourceSave/tree/master/TodoMVC/angularjs
源码下载后,请在服务器中打开
目录结构
主要根据功能不同,放在了不同文件夹中
- angularjs/
- js/
- controllers/
- todoCtrl.js->最主要的一个控制器
- directives/
- todoEscape.js->实现按下esc键,恢复到原先编辑状态的指令
- todoFocus.js->再编辑input显示,聚焦的指令
- services/
- todoStorage.js->实现本地localStorge
- app.js->入口文件,包含了路由配置
- controllers/
- node_modules/
- angular/
- angular-resource/
- angular-route/
- todomvc-app-css/->页面主要样式文件
- todomvc-common/->一些通用的css样式和js helper
- index.html
- js/
index.html
相关说明全部写在注释里了
1 |
|
app.js
app.js是入口文件,主要是创建了模块,并配置了路由
1 | /*global angular */ |
todoStorage.js
这个文件是一个服务,主要实现了数据在localStorge中的存储和读写
其实这一块没怎么看懂,主要是不太理解ngResource模块的作用,不过大概知道是存储和读取数据用的
1 | /*global angular */ |
todoEscape.js
这是一个指令,主要完成按下esc键,恢复再编辑input到原先状态
1 | /*global angular */ |
todoFocus.js
这个指令主要完成再编辑input的显示和聚焦
1 | /*global angular */ |
todoCtrl.js
这是重头性,关键性逻辑全写在这
1 | /*global angular */ |