AngularJS最佳实践

翻译自:Best Practices

  • 命名要发布的代码

    不用担心内部代码的指令前缀,但是一旦你计划开源你的代码,其需要被命名。

    • ng-前缀预留给Angular内部使用
    • 有目的的命名(例如:i18n- 或者 geo-)比任意的命名(djs- 或者 igor-)好很多
    • 可以使用ui-alias移除第三方前缀。
  • 只为原子事件使用.$broadcast().$emit().$on()
    在整个应用程序中相关的事件(例如用户授权或者关闭应用)。如果你希望特定于模块、服务或小部件的事件,你应该考虑使用服务、指令控制器或者第三方库。

    • $scope.$watch() 应该能满足这些需求
    • 注入服务和直接调用方法同样有效
    • 指令间可以通过指令控制器相互交流
  • 让用户尽可能的使用表达式

    • ng-hrefng-src 支持 {{}}
    • 使用$attrs.$observe(),因为表达式是异步的,并且可能改变
  • 通过使用指令的Controller来扩展指令

    你可以把方法和属性放在指令的控制器中,通过其他的指令获取到控制器。你甚至可以通过这样来覆盖方法和属性。

  • 给控制器和指令添加销毁代码

    在指令和控制器销毁前会触发事件。这给了拆解你的插件和监听的机会,来更好的实现垃圾回收。

    • 注册$scope.$on('$destroy', ...)事件
  • 恰当地利用模块

    把你的代码分成相关的包,而不是横向切分你的模块,导致其不能被分解。这样的话,当你移除了一个模块,你的应用仍然可以继续工作。

    • 检出angular-app/angular-app 当作一个例子
    • 在多个.config()方法中定义路由
    • 模块有自己的依赖
    • 目录结构应该反应模块结构
  • 使用NPM和Bower

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值