当AngularJS变量在$scope中定义时使用对象名

Using object name when AngularJS variable is defined in $scope

本文关键字:对象 定义 变量 AngularJS scope      更新时间:2023-09-26

假设我们在AngularJS中有一个NameController。你可以这样定义变量:

this.name = 'Joe';

或:

$scope.name = 'Joe';

我总是喜欢用对象表示法来调用所有变量:

<form ng-controller="NameController as nameCtrl">
  <input type="text" ng-model="nameCtrl.name">
</form>

只有当我在控制器中使用' This '符号时才有效。当我使用$scope时,我必须调用'name'而不使用nameCtrl。让它工作

当然,我在这里遗漏了一些非常基本的基础知识,但在做了一些研究之后,我仍然卡住了。如何在HTML代码中保留尽可能多的对象命名?

一次只能使用一个方法,详见此链接https://docs.angularjs.org/api/ng/directive/ngController

下面包含两种不同的声明样式:

    使用ng-controller="SettingsController1 as settings"将方法和属性直接绑定到控制器上
  • 向控制器中注入$scope: ng-controller="SettingsController2"

Angular js有一个特性ControllerAs。这就是你现在使用的。你只是引用你的nameCtrl对象到NameController对象。并且您正在使用控制器对象的克隆访问name值。假设this只是指向$scope的指针

这里有一个很好的技术介绍:

如果你想在任何地方使用对象,你可以使用Angular Service注入到你的控制器,这样你就可以很容易地从每个控制器的服务中调用任何对象。