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

Ionic中ngModel绑定输入框值返回undefined问题排查

解决Ionic中ngModel绑定变量返回undefined的问题

看起来你踩了Angular模板访问权限的坑!你的userName和password变量被声明为private,这就导致模板(HTML)无法访问它们,所以[(ngModel)]根本没法把输入值绑定到这些变量上,最终打印出来就是undefined。

修复步骤:

  • 把组件类中的私有变量改为公共属性(Angular中默认属性是public,所以直接去掉private修饰符即可)
  • 给password也加上明确的类型声明,保持代码规范

修改后的TS代码如下:

import { Component, OnInit } from '@angular/core'; 
import { Router } from "@angular/router"; 

@Component({ 
  selector: 'app-login-page', 
  templateUrl: './login-page.component.html', 
  styleUrls: ['./login-page.component.scss'], 
}) 
export class LoginPageComponent implements OnInit { 
  userName: string;
  password: string;

  constructor(private router: Router) { } 

  ngOnInit() {} 

  loginSubmit(){ 
    console.log("submit", this.userName, this.password); 
  } 
}

为什么会这样?

Angular的模板只能访问组件类中**公共(public)**的属性和方法,私有成员在模板的上下文环境里是不可见的。你之前用private修饰了变量,模板就无法完成双向绑定的赋值操作,自然变量值始终是undefined。

另外检查了你的app.module.ts,已经正确导入了FormsModule(这是使用ngModel的必要条件),所以这部分没问题,不用修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:57:45