假设我们在AngularJS中有一个NameController。你可以在那里定义如下变量:
this.name = 'Joe';
或者:
$scope.name = 'Joe';
我总是喜欢使用对象表示法来调用所有变量:
<form ng-controller="NameController as nameCtrl">
<input type="text" ng-model="nameCtrl.name">
</form>
仅当我在控制器中使用“this”表示法时才有效。当我使用$scope
时,我必须在没有nameCtrl
的情况下调用'name'。使它工作。
当然,我在这里缺少一些非常基础的基础知识,但在做了一些研究之后,我仍然陷入困境。如何在HTML代码中保留尽可能多的对象命名?
答案 0 :(得分:1)
您应该一次只使用一种方法,请参阅此链接的更多详细信息 https://docs.angularjs.org/api/ng/directive/ngController
下面列出了两种不同的声明风格:
- 使用以下方法将方法和属性直接绑定到控制器上:ng-controller =“SettingsController1 as settings”
- 将$ scope注入控制器:ng-controller =“SettingsController2”
答案 1 :(得分:0)
Angular js有一个功能ControllerAs
。这就是你现在正在使用的。您只是将nameCtrl
对象引用到NameController
对象。您正在使用控制器对象的克隆访问名称值。想象一下,this
只是指向$scope
这是一个很好的技术介绍:Angular Controllers
如果您想在任何地方使用对象,可以使用Angular Service
注入控制器,这样您就可以在每个控制器中轻松调用服务中的任何对象。