在ng-controller中使用“as ctrl”而没有使用它

时间:2016-04-26 07:23:50

标签: angularjs angular-controller

我对棱角分明的材料很陌生。我正在尝试使用自动完成功能。

我在这里有一些自动填充示例代码; http://codepen.io/helpme/pen/KzxXPQ

困扰我的第一件事是控制器的声明;

在我过去的angularjs代码中,ng-controller以<div ng-controller="DemoCtrl as ctrl" layout="column" ng-cloak="" ng-app="MyApp"> 的方式声明,而没有<div ng-controller="DemoCtrl"

拥有as ctrl与没有它有什么区别?如果删除as ctrl,应如何更改http://codepen.io/helpme/pen/KzxXPQ处的代码?

1 个答案:

答案 0 :(得分:2)

John Papa出色的Angular style guide(所有新角色开发者IMO的基本阅读材料)涵盖了这一点:

  

为什么?:构建控制器,“新建”并提供单个新实例,并且controllerAs语法比经典$ scope语法更接近JavaScript构造函数的语法。

     

为什么?:它促进了对视图中“点”对象的绑定的使用(例如customer.name而不是name),这更加符合上下文,更易于阅读,并且避免了任何可能发生的参考问题。打点”。

     

为什么?:帮助避免在具有嵌套控制器的Views中使用$ parent调用。

第2点和第3点是我的关键 - 它使您的代码更容易阅读和维护。