这个值在哪里定义-“(action(mut foo)true)”?

时间:2019-06-22 07:50:58

标签: ember.js ember-cp-validations

从表面上看,这是关于ember-cp验证的问题,但实际上是关于action (mut foo)构造的问题。我已经读过release notes for when that was first introduced,但没有解决我在这里提出的问题。

在Ember.js模板中,使用ember-cp-validations时,您可以执行验证并像这样控制相关错误消息的显示。

enter image description here

focus-out触发属性showFirstNameError时更新。该属性随后用于控制错误消息的显示或其他方式。

这很好用,并且与ember-cp-validation demo一致。

但是属性showFirstNameError实际定义在哪里?我以为它是validations属性的一部分,或者以某种方式是组件,控制器或路由的一部分,但我找不到。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

我认为不需要在任何地方进行定义。在这种情况下,它只能是undefined,因为它的唯一目的是成为一个标志值,因此我们不显示错误div。在创建和渲染组件时,该属性为undefined,并且它是虚假值,因此可以实现其目的。当聚焦事件触发时,它会像您所说的那样将该属性设置为true,因此该标志已被翻转。

如果您想变得友善并使事情变得明确,则可以在组件本身上将值设置为nullundefined,以免这种情况使下一个人感到困惑:< / p>

import Component from '@ember/component';

export default Component.extend({

  showFirstNameError: undefined,

});