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

Where is this value defined - "(action (mut foo) true)"?

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

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

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

这非常有效,并且与 ember-cp-validation demo 一致。

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

谁能帮我解决这个问题?

我认为不需要在任何地方定义。在这种情况下,它可以只是 undefined,因为它的唯一目的是作为一个标志值,所以我们不会显示错误 div。当组件被创建和呈现时,属性 是 undefined 并且它通过作为一个虚假值来达到它的目的。当 focus out 事件触发时,它会像你说的那样将 属性 设置为 true,因此标志已被翻转。

如果您想表现得友善并明确表达,您可以将组件本身的值设置为 nullundefined,这样这种情况就不会混淆下一个人:

import Component from '@ember/component';

export default Component.extend({

  showFirstNameError: undefined,

});