AngularJS: controller as syntax

来源:互联网 发布:淘宝哪个店有原味丝袜 编辑:程序博客网 时间:2024/05/16 18:41

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
原创粉丝点击