gpt4 book ai didi

javascript - angularJS/breeze 删除 'intermediate' 负数条目(HTML5)

转载 作者:可可西里 更新时间:2023-11-01 13:31:23 26 4
gpt4 key购买 nike

在这里打了一点仗。我有一个基于 John Papa 方法的 HTML5 SPA 应用程序。我有一系列应该接受正/负实数的输入框。

类似于here ,当用户键入第一个“-”键作为负数的一部分时,breeze (1.5.2) 或 angularjs (1.3.15) 会将其清除,因为此时它不是有效数字。根据帖子,我在输入中添加了 ng-model-options:

<input 
ng-model-options="{ updateOn: 'blur' }"
ng-model="rdg.Reading.ManualValue"
step="any" type="number"/>

这有帮助,但问题是存在可用性问题,正如该帖子中提到的那样。以前,按下第一个键的那一刻, View 会收到通知,告知某些内容已更改并且一切正常。现在您实际上必须离开控件,这可能会导致困惑。

还有第二个建议,即添加:

ng-model-options="{allowInvalid: true}" 

这在概念上听起来更好,但这没有任何效果 - 因此回到 onBlur。

我真的可以使用一些关于如何让它变得更好的建议。 OnBlur 有所帮助,但我只能听到我将要收到的提示,因为这种输入数字的方式不一致。

感谢您的帮助。科里。

最佳答案

当 breeze 解析和更新实体时,输入被重置。为防止这种情况发生,您可以将 breeze 的 z-float angular 指令添加到输入中。

将脚本添加到页面:

<script src="https://rawgithub.com/Breeze/breeze.js.labs/master/breeze.directives.js" ></script>

将模块作为依赖项添加到您的应用中:

angular.module('yourApp', ['breeze.directives']);

然后将 z-float 指令添加到您的输入中:

<input data-ng-model="vm.person.balance" z-float placeholder="Balance" />

参见 http://www.getbreezenow.com/breeze-labs/breezedirectivesfloat

The cause is Angular's eager data binding. Angular sends each keystroke through to the data bound model property.

That becomes a problem when Breeze parses data entry before the user has finished typing. The user could be in the middle of data entry when Breeze parsing does something to her intermediate value and updates the property with something else before she has a chance to complete her thought.

有关更多详细信息,并查看实际效果,请查看他们的 Plunker

关于javascript - angularJS/breeze 删除 'intermediate' 负数条目(HTML5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29569555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com