无法设置输入的默认值(角度)

时间:2020-05-09 18:09:26

标签: html angular mongodb input

我有一个使用角形的网页。该页面基本上是用户数据,因此显示用户的姓名,电话,邮件等。这些数据是使用mongoDB数据库获取的。我希望它默认显示已在占位符中设置的值,并且希望用户也可以更改它。如果他们在字段中未输入任何内容,则应传递的值是占位符。例如,值{{this.cliente.nome}}处于与输入字段不同的字段中,但是当我尝试将其用作输入的默认值时,它将不起作用。当另一个工作时,它说“无法读取未定义的属性'nome'”。数据来自mongoDB,但不正确。这是我的代码:

SELECT ID,  
       CHAR_LENGTH(js) - CHAR_LENGTH(REPLACE(js, 'true', SPACE(LENGTH('true')-1))) 
        AS Cnt_True,
       CHAR_LENGTH(js) - CHAR_LENGTH(REPLACE(js, 'false', SPACE(LENGTH('false')-1))) 
        AS Cnt_False        
  FROM
  ( SELECT *, JSON_EXTRACT(jsdata, '$.*') AS js
      FROM tab ) t
import { Component, OnInit } from '@angular/core';
import { UserService } from '../user.service';
import { User } from 'src/user';
import { FormGroup, FormControl, FormArray, FormBuilder } from "@angular/forms";
import { Router } from '@angular/router';

@Component({
  selector: 'app-cliente-dados',
  templateUrl: './cliente-dados.component.html',
  styleUrls: ['./cliente-dados.component.css']
})
export class ClienteDadosComponent implements OnInit {

  cliente: User;
  updateForm: FormGroup;

  constructor(
    private userService: UserService,
    private formBuilder: FormBuilder,
    public router: Router
  ) { 
    this.updateForm = this.formBuilder.group({
      nomeUpdate: this.formBuilder.control("")
    })
  }

  ngOnInit(): void {
    this.getCliente();
  }

  getCliente(){
    this.userService.getUser(localStorage.getItem('userAtual')).subscribe(user => {
      this.cliente = user[0];
    }); 
  }

  updateCliente(updateData){
    console.log("update");
  }

}

Representation of the issue: top and bottom values are shown(not input field) Middle one not shown(input field with default value)

1 个答案:

答案 0 :(得分:1)

您正在使用FormBuilder,因此未使用value的{​​{1}}属性。初始值由input

初始化

FormControl

中删除以下内容
constructor

修改this.updateForm = this.formBuilder.group({ nomeUpdate: this.formBuilder.control("") })

getCliente()

已添加.pipe(first()),因此仅使用接收到的第一个值。

希望有帮助!

相关问题