Javascript angularJS/微风吹扫';中级';负数输入(HTML5)
在这里打一场小仗。我有一个基于约翰·帕帕方法论的HTML5 SPA应用程序。我有一系列的输入框,可以接受正/负实数 与此类似,当用户键入第一个“-”键作为负数的一部分时,breeze(1.5.2)或angularjs(1.3.15)会将其清除,因为此时它不是有效数字。根据帖子,我在输入中添加了ng模型选项:Javascript angularJS/微风吹扫';中级';负数输入(HTML5),javascript,angularjs,html,breeze,Javascript,Angularjs,Html,Breeze,在这里打一场小仗。我有一个基于约翰·帕帕方法论的HTML5 SPA应用程序。我有一系列的输入框,可以接受正/负实数 与此类似,当用户键入第一个“-”键作为负数的一部分时,breeze(1.5.2)或angularjs(1.3.15)会将其清除,因为此时它不是有效数字。根据帖子,我在输入中添加了ng模型选项: <input ng-model-options="{ updateOn: 'blur' }" ng-model="rdg.Reading.ManualValue" step="
<input
ng-model-options="{ updateOn: 'blur' }"
ng-model="rdg.Reading.ManualValue"
step="any" type="number"/>
这听起来在概念上更好,但这没有任何效果-因此回到了onBlur
我真的需要一些关于如何让这更好的建议。OnBlur帮了忙,但我能听到我将要听到的抱怨,因为这种输入数字的方式不一致
谢谢你的帮助。
Corey.当breeze解析并更新实体时,输入被重置。为了防止这种情况发生,您可以将breeze的
z-float
angular指令添加到输入中
将脚本添加到页面:
<script src="https://rawgithub.com/Breeze/breeze.js.labs/master/breeze.directives.js" ></script>
并将z-float
指令添加到输入中:
<input data-ng-model="vm.person.balance" z-float placeholder="Balance" />
看
原因是Angular急切的数据绑定。Angular将每次击键发送到数据绑定模型属性
当Breeze在用户完成输入之前解析数据条目时,这就成了一个问题。当微风解析对她的中间值做一些事情时,用户可以处于数据输入的中间,在她有机会完成她的想法之前,用其他东西更新属性。
要了解更多细节,并查看其实际效果,请查看他们的。据我所知,这一定是微风中的某种东西。Angular对负数没有任何问题,只是以他们的验证为例,在Plunker中打开它,删除
min=
表达式,负数就可以了。你能给我们多一点代码吗,特别是让breeze将数据持久化到服务器的方式和位置?您的表单上有保存按钮吗?这里有一个plunker,可以很好地演示这个问题;它来自于与此问题相关联的问题。在本示例中,任何少于4个字符的内容都会破坏文本框;就海报而言,负面因素会导致问题。在这两种情况下,不必向服务器提交数据来打破框框。@flup我认为这与向服务器提交数据无关,但只在客户端验证中进行。我希望像沃德(微风大师)这样的人能够发表评论。我将尝试一个自定义验证函数,看看是否有帮助。需要更多信息。另一个例子中的Plunkr给出了问题b/c的两个原因:1)它使用最小长度,2)填充数组,因此当前目标为空。你的问题是不同的,使用你的标记,我不能重新创建你的错误。您的控制器中是否对该模型进行了某种主动验证?@Claies您的问题恰恰相反。Angular急切地砍掉输入的字符,这样它们就永远不会变得足够大。另一个调整解析而不是格式的指令可以帮助您实现这一点。看见
angular.module('yourApp', ['breeze.directives']);
<input data-ng-model="vm.person.balance" z-float placeholder="Balance" />