使用 ng-model 定义变量之间的区别,而不是通过 AngularJS 中的控制器定义变量

Difference between defining a variable using ng-model, not by a controller in AngularJS

本文关键字:变量 定义 AngularJS 控制器 之间 ng-model 区别 使用      更新时间:2023-09-26

我无法理解以下两个不同代码片段中变量的行为。

<body ng-app="">
<input ng-model="name">
{{name}}
</body>

上面的代码没有对变量"name"使用任何控制器

<body ng-app="myApp" ng-controller="NameController">
<input ng-model="name">
{{name}}
<script>
var app = angular.module('myApp', []);
app.controller('NameController', function($scope) {
$scope.name="";
});
</body>

在此代码片段中,我使用了控制器。

AngularJS中的$scope是一个内置对象,其中包含应用程序数据和方法。可以在控制器函数内为$scope对象创建属性,并为其分配值或函数。

在第二种情况下,您在函数范围内定义了变量,它将不可用,您必须在控制器内部使用,如果您想传递名称的值,则无需从 DOM 获取变量值,您可以使用 $scope.name

第一个是只需在html中分配ngModel,如果您想使用该值,则必须从angular.element()函数中获取值,否则您可以将其打印为html

我对

SO 进行了一些快速研究,得出的结论是,在第一种情况下,一切都只是在应用程序的全局范围内定义,并且应用程序没有名称,因此您基本上无法为您的应用程序分配任何控制器、指令等,但它正在工作。

第二种方法是正确的方法:您的应用程序(或模块)有一个名称,它被分配给一个变量,因此您可以将工厂、控制器、指令等分配给应用程序。

来源:ngApp 不使用任何特定的模块名称。