AngularJS: controller as syntax

Digging into Angular’s “Controller as” syntax

AngularJS’s Controller As and the vm Variable

Do You Like Your Angular Controllers with or without Sugar?

Using Angular Forms With Controller As Syntax

AngularJS 从1.2版本开始带来了新语法 Controller as。之前我们对于angular在view上的绑定都必须使用直接的 scope 对象,对于controller来说我们也得必须注入 scope。觉得我们的 controller 不够POJO,以及对于coffescript爱好者不足够友好,所以在angular在1.2给我带来了一个新的语法糖这就是controller as.

其优势为:

  • 定义vm这样会让我们更好的避免JavaScript的this的坑。
  • 如果某个版本的angular不再支持controller as,可以轻易的注入$scope,修改为 var vm =$scope;
  • 因为不再注入$scope了,controller更加的POJO,就是一个很普通的JavaScript对象。
  • 也因为没有了$scope,而controller实例将会成为$scope上的一个属性,所以在controller中我们再也不能使用$watch, $emit, $on之类的特殊方法,因为这些东西往往不该出现在controller中的,给大家一个警告,更好的控制。但是一旦如果没办法必须用的话,可以在征得项目组一致同意,将此controller退回$scope.
  • 因为controller实例将会只是$scope的一个属性,所以view模板上的所有字段都会在一个引用的属性上,这可以避开JavaScript原型链继承对于值类型的坑。
  • controller as 对于 coffescript,cliveScript更友好。
  • 模板上定义的每个字段方法都会在$scope寄存在controller as别名上的引用上,所以在controller继承中,不会在出现命名冲突的问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值