背景
这可能是一个棘手的问题,但这是企业应用程序中非常需要执行的一项任务。
考虑一组输入:
滑块1->值a
滑块2->值b
输入框1->值c
和一组输入约束:
a + 5> = b
a + c = 20
...
一组优先级,例如a的优先级高于c的b。这意味着为了满足一个约束条件,可以在较高优先级变量之前调整较低优先级变量。
如果可以根据用户输入(最后一次触摸该控件)动态分配优先级,则奖励点。
通常,客户端始终不受信任,因此必须在Web服务器上执行相同的验证,这需要重复的嵌套ifs和switch语句。
问题
是否有框架可以在AngularJS中定义此类约束?由于它已经具有数据绑定功能,因此与之并行创建一个层而不是利用Angular的框架似乎有些愚蠢。
是否有任何Java(首选)框架也允许这样做?
如果两者都可以采用类似JSON / JavaScript的语法,并且可以在不使用特定于语言的构造的情况下,以清晰的元语言指定方程式和优先级,那就太好了。
最佳答案
最后,中间解决方案是向Javascript UI发送临时语言对象,然后将其解析为验证规则:Rule(“ a”,“ b”,“ gt”)。
这使得将来的扩展成为可能,并且仍然设法使客户端与服务器脱钩。
有一些可用的解决方案-Casowary和ConstraintJS-可以构建类似这样的解决方案,但是它们需要大量的设置并且可能不够稳定。
注意:
我对此感到很惊讶,因为对它的兴趣实际上是消极的,我可以得出结论并说每个人:a)硬编码其约束,或b)编写自定义解决方案。看到了我应得的代码份额之后,我更倾向于a)。
关于javascript - AngularJS/Javascript中的输入约束,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22540231/