angularjs1.X 重构controller 的方法小结


Posted in Javascript onAugust 15, 2019

本篇是内部培训交流会的摘要总结。

培训PPT和示例代码已托管至我的github仓库:

https://github.com/dashnowords/blogs/tree/master/Demo/rebuild-angularjs-controller

一. 结构拆分

小型项目

通过子路由实现拆分分层,父级控制器控制共享模块,提供公共能力,子级分管自己的模块,父子级之间通过消息机制进行通讯。

angularjs1.X 重构controller 的方法小结

中型项目

通过组合视图实现模块划分,组合视图共享同一个路由地址,分管不同的模块,组合视图之间需要通过父级控制器(或组合视图的根控制器)来实现通讯。

angularjs1.X 重构controller 的方法小结

大型项目

通过视图组件指令,业务模块指令来进行更细粒度的模块拆分,模块通信依然建议通过消息机制来进行。

angularjs1.X 重构controller 的方法小结

二.基本代码优化

1.业务逻辑代码

封装Service,通过依赖注入在Controller中或指令中使用。

2.数据加工代码

建议使用表达性更强的通用工具库underscore.jslodash.js提升效率,精简代码。

3.DOM操作

建议学习和习惯Angular数据驱动的主导思想,通过数据来启用或消除DOM操作,具体的执行需要通过自定义指令进行实现。

总结

以上所述是小编给大家介绍的angularjs1.X 重构controller 的方法小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
关于JavaScript的gzip静态压缩方法
Jan 05 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
Sep 28 Javascript
PHP abstract与interface之间的区别
Nov 11 Javascript
jQuery中children()方法用法实例
Jan 07 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
May 16 Javascript
简介JavaScript中toUpperCase()方法的使用
Jun 06 Javascript
jQuery+JSON实现AJAX二级联动实例分析
Dec 18 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
JS随机排序数组实现方法分析
Oct 11 Javascript
JavaScript Array对象基本方法详解
Sep 03 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
Oct 22 Javascript
浅析Vue中拆分视图层代码的5点建议
Aug 15 #Javascript
vue的keep-alive用法技巧
Aug 15 #Javascript
Vue开发环境中修改端口号的实现方法
Aug 15 #Javascript
Vue触发隐藏input file的方法实例详解
Aug 14 #Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
Aug 14 #Javascript
微信小程序之数据绑定原理解析
Aug 14 #Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 #Javascript
You might like
新版PHP将向Java靠拢
2006/10/09 PHP
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
JS实现购物车特效
2017/02/02 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
python接口自动化框架实战
2020/12/23 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
EJB的角色和三个对象
2015/12/31 面试题
优秀毕业生推荐信范文
2014/03/07 职场文书
环保倡议书
2014/04/14 职场文书
《所见》教学反思
2016/02/23 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
mysql如何查询连续记录
2022/05/11 MySQL
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle
Nginx如何配置根据路径转发详解
2022/07/23 Servers
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers