角度:文本输入不会设置为默认值

时间:2018-09-17 10:36:21

标签: html angular typescript textinput

我有这个“用户名”输入:

<div class="form-group"> 
    <label for="userName">Username</label>
    <input name='userName' ngModel id="userName" type="text" 
           ng-model="userName"   init="userName='Bob'" value="Bob" >
</div>

我想将输入默认设置为“鲍勃”,但这不起作用。如果我删除“ ngModel”,则可以使用,并且需要它,否则它将不会将我的用户名发送到服务器。

这是在表格的开头(当我按下“提交”按钮时发生的操作):

<form #physicians="ngForm" (ngSubmit)="onFormSubmit(physicians.value)">

这是控制器:

onFormSubmit(data) {
    console.log(data);
    this.adminService.updateUser(data).subscribe((responseData: any) => {
        this.router.navigate(['/']);
   },
   (err: HttpErrorResponse) => {
       this.isSignupError = true;
       this.errorText = err.error['message'];
   });
}

我该如何解决?谢谢!

5 个答案:

答案 0 :(得分:1)

您应该执行以下操作:

ts代码:

export class AppComponent  {
  userName;
  constructor() {
    this.userName = 'Bob';
  }
}

html:

 <form #form="ngForm" novalidate>
    <label>userName:</label>
    <input type="text" name="userName" [(ngModel)]="userName" required minlength="2" maxlength="10" #userNameDir="ngModel">
    <pre>errors: {{userNameDir.errors | json}}</pre>
  <button type="button" [disabled]="form.invalid" (click)="onFormSubmit(form.value)">submit</button>
  <pre>form.value: {{form.value | json}}</pre>
  <pre>form.errors: {{form.errors | json}}</pre>
  <pre>form.status: {{form.status | json}}</pre>
  <pre>form.dirty:{{form.dirty | json}}</pre>
</form>

DEMO

答案 1 :(得分:1)

你可以使用

[defaultValue]="myDefaultValue"

没有 Angular 在输入更改时更改变量“myDefaultValue”。

答案 2 :(得分:0)

尝试使用以下代码: HTML

<input name='userName'  id="userName" type="text" [(ngModel)]="userName">

TS

userName='Bob' // when you have declared the variable

答案 3 :(得分:0)

 <form [formGroup]="physicians" (ngSubmit)="onSubmit(physicians.value)">
<div class="form-group"> 
            <label for="userName">Username</label>
            <input  name='userName'  type="text"  formControlName="userName"  >
     </div>

TS FILE代码

将此内容放入ngOnInit

this.physicians= this._formBuilder.group({
      userName:['bob']
})



onFormSubmit(data) {
console.log(data);
 this.adminService.updateUser(data).subscribe((responseData: any) => {
  this.router.navigate(['/']);
},
(err: HttpErrorResponse) => {
  this.isSignupError = true;
  this.errorText = err.error['message'];
});

答案 4 :(得分:0)

您可以添加this.userName ='Bob';在.ts文件中,从html中删除init和value ='Bob'。