问题标签 [ember-cp-validations]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ember.js - ember-engines 中的 ember-cp-validation 问题
正如标题所说,我认为ember-cp-validations与ember-engines有关。
基本上,我的问题是使用 ember-cp-validations 的模型的表单中没有验证。这是我的模型:
如您所见,我的模型非常简单,并且在我的应用程序中运行良好。
对于模板,我使用的是ember-bootstrap,它看起来像这样:
我的模板也很简单,您可以看到在我的表单的第一部分中我调用了property="name"
,这是我定义模型的 anme 属性的地方。
例如,如果我的 name.length 小于 3 个字符,则不会显示该消息。
我有义务添加disabled=(v-get myModel 'isInvalid')
,如果验证未完成,这将禁用我的按钮,因为如果我没有添加此属性,即使某些信息为假,也会发送信息。
也许有人有一个提示,可以在我的表单中进行验证。大家好!
ember.js - ember-cp-validations 条件验证器
我在模型和表单上使用 ember-cp-validations。我希望仅在满足某些条件时才激活验证。例如,当路由处于活动状态或在特定上下文中使用组件时。
为了说明,我有一个基本email
模型,它对模型本身进行了典型的验证。当在用户帐户的上下文中使用该模型时,我希望有一个额外的验证器处于活动状态(一个username-exists
验证器,用于判断他们是否正在尝试将他们的电子邮件地址更新为另一个帐户上存在的电子邮件地址)。
我的电子邮件模型:
我已经有一个用户名存在的自定义验证器。我只是不知道如何有条件地添加该验证。
最简单的解决方案是添加已验证的disabled
选项,除非满足条件,否则该选项将保持禁用状态。
但我不知道依赖键是什么。我认为模型定义中没有可用的路由名称。
还是应该将条件验证器添加到组件本身?有没有办法将验证器从组件 js 附加到validators
数组?
我想我可能遗漏了一些明显的东西;)
ember.js - 使用 ember-cp-validations 在 ember 中不时验证
我有两个字段,“从时间”和“到时间”。我想验证 From time 应该小于 To time 并且 To time 应该大于 From time。
意味着验证应该取决于这两个字段。有什么方法可以验证这种情况吗?
使用上面的代码,我可以验证具有快乐路径的字段。
但是,如果我们将 From time 设置为11:20am
& To time as11:20am
那么错误将显示在 To time 字段上。现在,如果我们更改 From 时间,11:19am
它仍然会显示 To time 错误。我想要解决这种情况。
我正在使用ember-cp-validations。
谢谢。
ember.js - 仅对选定字段设置 'didValidate' true
环境
- 灰烬版本:2.0
- Ember CLI 版本:2.13.0
- Ember CP 验证版本:3.4.0
重现步骤
HB:
js:
现在,当我单击提交时,将调用changeEmail操作,如果验证失败,它将设置this.set('didValidate', true); 它启用了所有三个验证输入字段,并显示验证错误,甚至是确认令牌字段。但我只需要为current_password和new_email显示验证错误消息。调用验证操作时反之亦然
javascript - ember-cp-validations 表单错误消息未显示
我正在尝试使用 ember-cp-validations 验证表单中的输入。实际验证本身似乎正在工作,但是我无法在模板上显示错误消息。一般来说,我对 ember 还很陌生,我假设我没有正确使用 v-get 助手中的模型。
这是我的模型:
这是提交表单时我在控制器中运行的操作:
在此操作中,当名称字段为空时,它确实表示表单按预期无效。
最后,我尝试在这里显示错误:
当您失去对该字段的关注时,会在此处创建 div,但该消息永远不会显示。据我了解,这里帮助器的参数应该是模型、您正在验证的字段,然后是要显示的消息。它知道表单无效,但消息从未显示的事实使我相信我误解了某些内容,并且实际上没有在 v-get 帮助程序中正确访问字符模型。
在阅读并观看了一些关于 ember-cp-validations 的教程之后,我似乎仍然被卡住了。任何帮助,将不胜感激。
提前致谢!
编辑:在尝试了几个小时来解决这个问题后,我想添加更多信息。我在控制器中创建了一个新操作,与位于此处的 ember-cp-validations github 页面中的示例非常相似:
我还确保在我的模型文件中导入和定义所有必要的信息。我使它看起来与他们的示例完全相同:
但是,当我运行该操作时,我收到错误 model.validate is not a function。我不明白为什么在他们的示例中他们能够在他们的模型上运行验证,但我无法在我的模型上运行。我越想解决这个问题,我就越困惑。
validation - ember-cp-validations - 如何在提交前没有失去焦点的情况下显示错误消息?
使用ember-cp-validations通常涉及在相应的表单元素失去焦点时验证每个属性。如果验证失败,则会显示错误消息。
这是在线演示(https://embermap.com/video/ember-cp-validations)中演示的方法,但是如果用户输入表单并立即点击提交表单的按钮,则永远不会显示消息(因为焦点输出永远不会触发)。
演示的方法使用从 validate() 返回的对象,这很好,但在这种情况下,我想要一种方法来触发所有表单元素的验证,以便显示错误消息(放在“调用所有验证.. .”如下所示)。
这样做的好方法是什么?谢谢你。
ember.js - 这个值在哪里定义 - “(action (mut foo) true)”?
表面上这是一个关于 ember-cp-validations 的问题,但实际上它是关于action (mut foo)
构造的。我已经阅读了首次引入时的发行说明,但它没有解决我在这里提出的问题。
在 Ember.js 模板中,使用ember-cp-validations时,您可以执行验证并控制相关错误消息的显示,如下所示。
focus-out
触发时showFirstNameError
更新属性。该属性随后用于控制错误消息的显示或其他方式。
这工作得很好,并且与ember-cp-validation 演示一致。
但是该属性showFirstNameError
实际定义在哪里?我期待它成为validations
属性的一部分,或者以某种方式成为组件、控制器或路由的一部分,但我找不到。
任何人都可以帮我解决这个问题吗?