angularjs中的controller.js 要不要分开成多个js文件
1个回答
展开全部
分代码一般对可维护性是有好处的,但要注意这些事情:
从理念上讲,拆的是逻辑而不是文件,如果你把逻辑拆分理清了,拆不拆文件的重要性并不大。如果对可维护性的提升是100%,逻辑的部分至少要占90%。
写Angular应用,最重要的事情是分层。很多人写不好Angular代码,原因就是没有分层的观念,所以症状就是controller又大又乱。简单的原则是:
远程请求,数据缓存等等一律放进service
不得以而产生的DOM操作,一律放进directive(在Angular应用里,需要你手动去操作DOM的场景其实很少了)
数据的格式化,一律做成filter
剩下的东西才是controller应该做的事情,在这里,又有一些事情要考虑:
视图是需要分块、分层的,如果你控制能力不足,最好把controller和视图块按照一对一的关系维护,每块单独都能跑,然后拼起来
嵌套的视图,作用域的关系需要好好考虑,这部分的相关机制可以参考我写的这篇:AngularJS实例教程(二)——作用域与事件 · Issue #18 · xufei/blog · GitHub
有一些东西并不应当在视图分块(姑且称为组件)的树状结构里,而是独立在外,跟这部分东西的交互,应当视情况使用service来通信,不要尝试在$scope体系上过多纠缠。
从理念上讲,拆的是逻辑而不是文件,如果你把逻辑拆分理清了,拆不拆文件的重要性并不大。如果对可维护性的提升是100%,逻辑的部分至少要占90%。
写Angular应用,最重要的事情是分层。很多人写不好Angular代码,原因就是没有分层的观念,所以症状就是controller又大又乱。简单的原则是:
远程请求,数据缓存等等一律放进service
不得以而产生的DOM操作,一律放进directive(在Angular应用里,需要你手动去操作DOM的场景其实很少了)
数据的格式化,一律做成filter
剩下的东西才是controller应该做的事情,在这里,又有一些事情要考虑:
视图是需要分块、分层的,如果你控制能力不足,最好把controller和视图块按照一对一的关系维护,每块单独都能跑,然后拼起来
嵌套的视图,作用域的关系需要好好考虑,这部分的相关机制可以参考我写的这篇:AngularJS实例教程(二)——作用域与事件 · Issue #18 · xufei/blog · GitHub
有一些东西并不应当在视图分块(姑且称为组件)的树状结构里,而是独立在外,跟这部分东西的交互,应当视情况使用service来通信,不要尝试在$scope体系上过多纠缠。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询