我的表单上有input[type=text]
ng-required="true"
。
我有一个按钮单击事件,用于更新输入绑定的模型。
如果更新的值为空,则表单无效。 但如果更新的值完全是空格,则表单有效。
如果删除空格并读取它,表单将再次失效。
这个jsfiddle演示:http://jsfiddle.net/dayeh/
这个问题有解决方法吗?现在我只想修剪所有后端数据。
答案 0 :(得分:6)
问题出现是因为ng-model
的工作方式。
默认情况下ng-model
修剪输入值。如果您在值modified fiddle周围查看该值,则可以看到用户输入的空格显示为空字符串。
但是,如果强制模型为空白区域,则不会应用修剪,因此模型在技术上是有效的。
您可以使用ng-model
删除ng-trim="false"
的默认剪裁。然后你就会得到更多预期的行为。
答案 1 :(得分:0)
单击您的按钮后,该值将重置。但是,该值将重置为。一个空的空白。如果我将其设置为
$scope.myData = '';
,则valid为false(正如预期的那样)。如果我手动输入空格,则有效值仍为false。
所以我认为 是您遇到的问题。将其切换为$scope.myData = ' ';
scope.myData = '';