我对棱角分明的材料很陌生。我正在尝试使用自动完成功能。
我在这里有一些自动填充示例代码; 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处的代码?
答案 0 :(得分:2)
John Papa出色的Angular style guide(所有新角色开发者IMO的基本阅读材料)涵盖了这一点:
为什么?:构建控制器,“新建”并提供单个新实例,并且controllerAs语法比经典$ scope语法更接近JavaScript构造函数的语法。
为什么?:它促进了对视图中“点”对象的绑定的使用(例如customer.name而不是name),这更加符合上下文,更易于阅读,并且避免了任何可能发生的参考问题。打点”。
为什么?:帮助避免在具有嵌套控制器的Views中使用$ parent调用。
第2点和第3点是我的关键 - 它使您的代码更容易阅读和维护。