You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular-Devextreme:DataGrid弹窗编辑中如何获取Password字段值?

解决DevExtreme DataGrid弹窗编辑中密码确认的验证问题

要实现ConfirmPassword与Password的一致性验证,核心是正确获取Password字段的输入值,以下是可行的方案:


步骤1:给表单添加模板引用

在dxo-form标签上添加模板引用变量,用于后续获取表单实例:

<dxo-form #editForm>
  <!-- 原有的Password、ConfirmPassword等表单项 -->
</dxo-form>

步骤2:在TypeScript中获取表单实例并实现比较逻辑

通过ViewChild获取表单组件实例,然后在passwordComparison函数中调用表单的getEditor方法获取Password编辑器的值:

import { Component, ViewChild } from '@angular/core';
import { DxFormComponent } from 'devextreme-angular';

@Component({
  // 组件元数据
})
export class YourComponent {
  @ViewChild('editForm', { static: false }) editForm: DxFormComponent;

  passwordComparison = () => {
    // 确保表单实例已初始化
    if (!this.editForm?.instance) return '';
    // 获取Password对应的编辑器
    const passwordEditor = this.editForm.instance.getEditor('Password');
    // 返回编辑器的当前值
    return passwordEditor ? passwordEditor.option('value') : '';
  };
}

为什么之前的方法没生效?

  • 直接给dxi-item加模板引用(#pass)无法获取到编辑器实例:dxi-item是表单项容器,真正的编辑器(这里是dxTextBox)是表单内部动态创建的,必须通过表单实例的getEditor方法获取。
  • 若尝试绑定formData,需确保formData与弹窗编辑的数据源同步,而通过表单实例获取编辑器值的方式更直接,无需额外维护数据绑定逻辑。

内容的提问来源于stack exchange,提问作者Panos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 23:27:48