使用 ng-model 定义变量之间的区别,而不是通过 AngularJS 中的控制器定义变量
Difference between defining a variable using ng-model, not by a controller in AngularJS
我无法理解以下两个不同代码片段中变量的行为。
<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 不使用任何特定的模块名称。
相关文章:
- 得到"全局未定义“;全局变量定义清楚时出错
- 使用变量的名称,然后为该变量定义函数
- Javascript 从 php 变量定义 getElementById()
- 使用变量定义宽度和高度
- 函数内部的JavaScript全局变量定义
- Javascript变量定义-澄清
- 为多个变量定义相同的类型,在Webstorm中识别
- 如何用变量定义一个数组,然后用一个数字填充每个数组
- 画布的奇怪行为 上下文变量定义位置导致选项卡处于非活动状态时画布呈现冻结
- 为什么要显式将变量定义为未定义
- Gulp/Grunt 获取触笔工作表中的所有颜色变量,并将它们作为变量定义写入文件
- 是否可以在 Node.js 中为模块变量定义 SET 函数
- ES6 块范围的变量定义作为条件
- 使用 jQuery 获取由变量定义的文本输入的值
- :gt()选择器,为变量定义的索引
- 如何在ASP.NET中将Javascript变量定义为Session
- 带有用户输入的ajax请求变量定义有问题
- 使用ElasticSearch搜索变量定义字段
- 变量定义,不同的输出
- JavaScript变量定义和范围