【发布时间】:2021-02-15 19:46:34
【问题描述】:
<input matInput placeholder="username" [(ngModel)]="userId">
<input matInput placeholder="name" [(ngModel)]="name">
我也导入了 FormsModule
import { FormsModule } from '@angular/forms'
@NgModule({
declarations: [
AppComponent,
UserInputComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
MatFormFieldModule,
MatInputModule,
MatButtonModule,
HttpClientModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-user-input',
templateUrl: './user-input.component.html',
styleUrls: ['./user-input.component.css']
})
export class UserInputComponent implements OnInit {
userId: string = 'userId';
name: string = 'name';
constructor() { }
ngOnInit(): void {
}
}
}
初始值正在控制台中打印,但当输入新值时,变量 userId 和 name 不会更新。如果我没有为 userId 和 name 提供初始值,那么即使在从输入中输入它们之后,在控制台上打印它们也会给我 undefined 。 请帮我找出问题所在。
编辑 该问题已通过在输入标记中包含名称属性得到解决。
【问题讨论】:
-
请分享一个最小的工作 StackBlitz 以了解您的实现并回复它。
-
你的 console.log() 在哪里?你如何用它来打印你想看的东西?
-
我有一个附加到按钮的点击事件。我正在将值打印到那里的控制台
-
你在哪个角度版本上工作?
-
如果您只使用 ngModel 独立,在某处没有表单,则不必为输入指定名称。但是当你在表单中使用它时,name 属性就变成了强制性的!
标签: angular typescript ngmodel