对于以下内容,我在AngularJS编译器的工作方面遇到了一些问题,因此我可以更好地了解幕后发生的事情。
<label>
Calories Needed :<input type="number" name="input" min="0" class="input" ng-model="calories"><br>
</label>
<div>
<span style="font-size:18px;color:red;" ng-show="userForm.input.$error.number">
Enter a valid number.
</span>
</div>
我有一个输入要求输入一个数字,如果用户输入的数字不是数字,那么使用ng-show指令,会出现错误消息。我的问题是,即使显示错误消息,这是否意味着用户输入的内容存储在“卡路里”中。不管它是不是一个数字?我觉得它仍然可以保存用户在变量中输入的内容。只是想更好地了解正在发生的事情。
答案 0 :(得分:2)
不,Angular不会将值存储在calories
中,直到它是有效数字。一个简单的方法是在视图中显示卡路里的绑定作为示例。
所以:
<label>
Calories Needed :<input type="number" name="input" min="0" class="input" ng-model="calories"><br>
{{ calories }}
</label>
您将看到卡路里变量仅在用户有效时被分配了用户输入的值。如果您的示例中有min="5"
,则calories
除非为5或更高,否则不会为其分配值。
我创建了一个plnkr来展示这一点。在输入的值为&gt; = 5之前,您会看到calories
未定义。