是否将字母值输入到由ng-model保存的数字输入中?

时间:2015-08-16 23:16:13

标签: javascript angularjs

对于以下内容,我在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指令,会出现错误消息。我的问题是,即使显示错误消息,这是否意味着用户输入的内容存储在“卡路里”中。不管它是不是一个数字?我觉得它仍然可以保存用户在变量中输入的内容。只是想更好地了解正在发生的事情。

1 个答案:

答案 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未定义。