我是AngularJS的新手,我对术语“控制器”感到困惑。和'控制器As'。 为什么我们一次使用两者?我想简要介绍一下这两个指令吗?
答案 0 :(得分:1)
控制器和 controllerAs 这两件事指的是同一件事 - 您想要在特定视图中使用的控制器。它们在访问其中的属性和函数的方式上有所不同。 controllerAs 语法是可选的,但我强烈推荐它。
编辑: controllerAs是您指定的控制器的别名,稍微修改了您在控制器中处理值的方式
如果您未指定 controllerAs ,您将使用控制器内的 $ scope ,您将直接访问控制器范围内的属性和功能,这或多或少是一种不好的做法。例如:
在控制器中:
$scope.employer = 'John';
$scope.totalEmployees = 15;
在视图中:
<div>{{employer}} has {{totalEmployees}} employees</div>
注意:查看视图如何直接从范围访问值。
但是,如果您指定 controllerAs
controller:'EmployeeController'
controllerAs:'emp';
方法略有不同,但更清洁,更易于维护:
在控制器中:
var emp = this;
emp.employer = 'John';
emp.totalEmployees = 15;
在视图中:
<div>{{emp.employer}} has {{emp.totalEmloyees} employees}}</div>
注意:现在您必须在视图中指定别名才能访问这些值。这是一种很好的做法,因为随着应用程序的增长,复杂性也会增加。使用 controllerAs ,您可以更好地控制应用程序,并且更易于维护和调试。
答案 1 :(得分:0)
你的html的内部控制器指令你可以访问分配给你的$scope
变量的值,但是如果你使用controllerAs =“vm”语法;
你可能只是(在你的控制器中)做:
var vm = this;
vm.myModel = 'my model text'
因此您不需要为$ scope分配值,并且在您的html中可以访问它
<div>{{vm.myModel}}</div>