我一直在看到有关自定义控制器是使用“new”关键字实例化还是仅应用于 $scope 对象的相互矛盾的信息。
文档网站说,
Angular 将控制器构造函数应用于(在 JavaScript 的 Function#apply 的意义上)一个新的 Angular 范围对象,该对象设置了初始范围状态。这意味着 Angular 永远不会创建控制器类型的实例(通过在控制器构造函数上调用 new 运算符)。构造函数总是应用于现有的范围对象。
但似乎在 Angular 1.2 中,有一个"as"
结构可以将控制器重命名为其他名称,例如:
<body ng-controller="DemoController as demo">
<tr ng-repeat="student in demo.students">
<td>{{student.name}}</td>
</tr>
</body>
function DemoController() {
this.students = [...]
}
所以这使得它看起来像一个控制器正在使用new
关键字进行实例化。
哪一个?有人可以澄清一下吗?