为什么有ng-init时输入的ng-model设置值?

时间:2019-01-27 05:25:12

标签: angularjs

我是angular的新手(始终与jquery一起使用)

据我了解,ng-model指令将输入的值绑定到应用程序数据; ng-init指令会初始化应用数据。因此,据我了解,ng-model不会设置输入值,而是将输入值存储到应用程序数据中。这是一个片段:

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>

<div ng-app="" ng-init="firstName='John'">

<p>Input something in the input box:</p>
<p>Name: <input type="text" ng-model="firstName" /></p>
<p>You wrote: {{ firstName }}</p>

</div>

</body>
</html>

在运行时,输入值已经设置为John!那为什么呢?

2 个答案:

答案 0 :(得分:3)

ng-init 指令基本上用于初始化变量(这种初始化也可以通过控制器完成

初始化范围变量firstName ='John'

ng-model 使用相同的范围变量将值绑定到输入中

除了使用 ng-init 进行此类初始化之外,该指令还用于评估当前作用域中的表达式。

答案 1 :(得分:2)

您对两者的了解都是正确的。在这种情况下,您要设置 $scope 变量 firstName 的值,该变量将绑定到输入的内容为 John

当设置绑定到输入的$ scope变量的值时,它将绑定到输入。因此,您看到的输出为John,即$ scope.firstName的值。