AngularJS最佳实践
2016-03-12 16:38
489 查看
翻译自:Best Practices
命名要发布的代码
不用担心内部代码的指令前缀,但是一旦你计划开源你的代码,其需要被命名。
有目的的命名(例如:
可以使用ui-alias移除第三方前缀。
只为原子事件使用
在整个应用程序中相关的事件(例如用户授权或者关闭应用)。如果你希望特定于模块、服务或小部件的事件,你应该考虑使用服务、指令控制器或者第三方库。
注入服务和直接调用方法同样有效
指令间可以通过指令控制器相互交流
让用户尽可能的使用表达式
使用
通过使用指令的Controller来扩展指令
你可以把方法和属性放在指令的控制器中,通过其他的指令获取到控制器。你甚至可以通过这样来覆盖方法和属性。
给控制器和指令添加销毁代码
在指令和控制器销毁前会触发事件。这给了拆解你的插件和监听的机会,来更好的实现垃圾回收。
注册
恰当地利用模块
把你的代码分成相关的包,而不是横向切分你的模块,导致其不能被分解。这样的话,当你移除了一个模块,你的应用仍然可以继续工作。
检出angular-app/angular-app 当作一个例子
在多个
模块有自己的依赖
目录结构应该反应模块结构
使用NPM和Bower
命名要发布的代码
不用担心内部代码的指令前缀,但是一旦你计划开源你的代码,其需要被命名。
ng-前缀预留给Angular内部使用
有目的的命名(例如:
i18n-或者
geo-)比任意的命名(
djs-或者
igor-)好很多
可以使用ui-alias移除第三方前缀。
只为原子事件使用
.$broadcast(),
.$emit()和
.$on()
在整个应用程序中相关的事件(例如用户授权或者关闭应用)。如果你希望特定于模块、服务或小部件的事件,你应该考虑使用服务、指令控制器或者第三方库。
$scope.$watch()应该能满足这些需求
注入服务和直接调用方法同样有效
指令间可以通过指令控制器相互交流
让用户尽可能的使用表达式
ng-href和
ng-src支持
{{}}
使用
$attrs.$observe(),因为表达式是异步的,并且可能改变
通过使用指令的Controller来扩展指令
你可以把方法和属性放在指令的控制器中,通过其他的指令获取到控制器。你甚至可以通过这样来覆盖方法和属性。
给控制器和指令添加销毁代码
在指令和控制器销毁前会触发事件。这给了拆解你的插件和监听的机会,来更好的实现垃圾回收。
注册
$scope.$on('$destroy', ...)事件
恰当地利用模块
把你的代码分成相关的包,而不是横向切分你的模块,导致其不能被分解。这样的话,当你移除了一个模块,你的应用仍然可以继续工作。
检出angular-app/angular-app 当作一个例子
在多个
.config()方法中定义路由
模块有自己的依赖
目录结构应该反应模块结构
使用NPM和Bower
相关文章推荐
- AngularJs的post传递参数action接不到
- Angular2 进阶
- AngularJS分别RequireJS做文件合并压缩的那些坑
- 欧拉项目第12题 Highly divisible triangular number
- 详解Angularjs中的依赖注入
- 【一起学AngularJS】第七章、XHRs和依赖注入
- 详解AngularJS过滤器的使用
- AngularJS学习(MVVM框架入门)
- Angularjs中使用Filters详解
- 简单介绍AngularJs Filters
- 简单介绍AngularJs Filters
- 简单介绍AngularJs Filters
- Angularjs中使用Filters详解
- 详解AngularJS过滤器的使用
- 详解Angularjs中的依赖注入
- AngularJS解决点击不刷新
- AngularJS简介
- 从angularJS改道Vue.js,趟过第一个坑!
- angular入门学习之三
- 我的angularjs源码学习之旅2——依赖注入