AngularJS 引入了一种定义控制器的新语法“controller as”,这引起了一些关注关于其目的的问题。本文旨在阐明此语法背后的基本原理及其优点。
“controller as”语法允许您实例化控制器并将其分配给当前的变量范围。例如:
<code class="javascript">controller('InvoiceController as invoice')</code>
此代码告诉 Angular 创建 InvoiceController 的实例并将其存储在当前范围内的发票变量中。
与“controller as”语法的一个显着区别是它从控制器定义中消除了 $scope 参数。这允许更干净、更简洁的控制器:
<code class="javascript">// With $scope function InvoiceController($scope) { // Do something with $scope.qty } // With controller as function InvoiceController() { // Do something with this.qty }</code>
虽然从控制器中删除 $scope 简化了代码,但它要求您在视图中指定别名:
<code class="html">// With $scope <input type="number" ng-model="qty" /> // With controller as <input type="number" ng-model="invoice.qty" /></code>
引入“controller as”语法主要是出于以下原因:
以上是为什么在 AngularJS 中使用'controller as”语法?的详细内容。更多信息请关注PHP中文网其他相关文章!