首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我不能使用角10中的api发布数据。

我不能使用角10中的api发布数据。
EN

Stack Overflow用户
提问于 2021-02-19 21:17:07
回答 2查看 95关注 0票数 0

这个表单的验证效果很好,下一步是使用api的post操作,但是我看到的教程差别很小,似乎没有什么效果,那么如何使用先通过的post操作进行验证呢?

简化的代码是我尝试过的。

代码语言:javascript
复制
ingresarservicio.component.html

    <form (ngSubmit)="onSubmit()" [formGroup]="form">
         <!--form (ngSubmit)="onSubmit(form)"  [formGroup]="yForm" -->
            <div class="form-group">
                <label for="tecnico">Técnico</label>
                <input type="text" class="form-control" id="tecnico" name="tecnico" formControlName="tecnico" [(ngModel)]="servicioSettings.tecnico">
            </div>
            
            <div class="form-group">
                <label for="servicio">Servicio</label>
                <input type="text" class="form-control" id="servicio" formControlName="servicio" [(ngModel)]="servicioSettings.servicio">
            </div>
    
            <div class="form-group">
                <label for="semanaDelAno">Semana del año</label>
                <input type="number" class="form-control" id="semanaDelAno" formControlName="semanaDelAno" [(ngModel)]="servicioSettings.semanaDelAno">
            </div>
    
            <div class="form-group">
                <label for="diaDeLaSemana">Día de la semana</label>
                <input type="text" class="form-control" id="diaDeLaSemana" formControlName="diaDeLaSemana" [(ngModel)]="servicioSettings.diaDeLaSemana">
            </div>        
    
            <div class="form-group">
                <label for="horaInicial">Hora Inicial</label>
                <input type="number" class="form-control" id="horaInicial" formControlName="horaInicial" [(ngModel)]="servicioSettings.horaInicial">
            </div>
    
            <div class="form-group">
                <label for="horaFinal">Hora Final</label>
                <input type="number" class="form-control" id="horaFinal" formControlName="horaFinal" [(ngModel)]="servicioSettings.horaFinal">
            </div>        
            
            <button type="submit" class="btn btn-primary" [disabled]="myForm.invalid">Enviar</button>
        </form>
代码语言:javascript
复制
ingresarservicio.component.ts

    export class IngresarsrevicioComponent implements OnInit {
    
      servicioSettings: ServicioSettings = {
        tecnico: null,
        servicio: null,
        semanaDelAno: null,
        diaDeLaSemana: null,    
        horaInicial: null,
        horaFinal: null
      };
    
      myForm: FormGroup;
      //dataService: DataService;
    
       constructor(private formBuilder: FormBuilder, private dataService: DataService)  {     
          this.myForm = this.formBuilder.group({
          //this.form = this.formBuilder.group({
            tecnico: ['', Validators.required],
            servicio: ['', Validators.required],
            semanaDelAno: ['', Validators.required],
            diaDeLaSemana: ['', Validators.required],        
            horaInicial: ['', Validators.required],
            horaFinal: ['', Validators.required]
          });
    
          // form = new FormGroup ({
          //   tecnico: new FormControl('', Validators.required)
          // });
       }
    
      ngOnInit(): void {
      }
    
      onSubmit(form: NgForm) {
        console.log('in onSubmit ', form.valid)    
        this.dataService.postServicioSettingsForm(this.servicioSettings).subscribe(
          result => console.log('success ', result),
          error => console.log('error ', error)
        );
      }
    
      // submit() {
      //   if (this.myForm.valid) {
      //     console.log(this.myForm.value)
      //   }
      //   else{
      //     alert("FILL ALL FIELDS")
      //   }
      // }
    
    }
代码语言:javascript
复制
data.service.ts

    constructor(private http: HttpClient) { }
    
      postServicioSettingsForm(servicioSettings: ServicioSettings): Observable<any> {
        return this.http.post('https://localhost:44309/api/Servicio/PostServicio', servicioSettings);
    }

我的本地主机中有api

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-19 22:17:27

我认为html文件中的formGroup属性与ts文件中的属性不同。我不能专门使用servicioSettings和ngModels的用例,如果您希望在constractor中设置默认值,或者可以使用patchValue。

代码语言:javascript
复制
this.myForm.patchValue(servicioSettings);

<form (ngSubmit)="onSubmit()" [formGroup]="myForm">
        <div class="form-group">
            <label for="tecnico">Técnico</label>
            <input type="text" class="form-control" id="tecnico" formControlName="tecnico">
        </div>
        
        <div class="form-group">
            <label for="servicio">Servicio</label>
            <input type="text" class="form-control" id="servicio" formControlName="servicio" >
        </div>

        <div class="form-group">
            <label for="semanaDelAno">Semana del año</label>
            <input type="number" class="form-control" id="semanaDelAno" formControlName="semanaDelAno">
        </div>

        <div class="form-group">
            <label for="diaDeLaSemana">Día de la semana</label>
            <input type="text" class="form-control" id="diaDeLaSemana" formControlName="diaDeLaSemana">
        </div>        

        <div class="form-group">
            <label for="horaInicial">Hora Inicial</label>
            <input type="number" class="form-control" id="horaInicial" formControlName="horaInicial">
        </div>

        <div class="form-group">
            <label for="horaFinal">Hora Final</label>
            <input type="number" class="form-control" id="horaFinal" formControlName="horaFinal">
        </div>        
        
        <button type="submit" class="btn btn-primary" [disabled]="myForm.invalid">Enviar</button>
    </form>

export class IngresarsrevicioComponent implements OnInit {

  servicioSettings: ServicioSettings = {
    tecnico: null,
    servicio: null,
    semanaDelAno: null,
    diaDeLaSemana: null,    
    horaInicial: null,
    horaFinal: null
  };

  myForm: FormGroup;

   constructor(private formBuilder: FormBuilder, private dataService: DataService)  {     
      this.myForm = this.formBuilder.group({
        tecnico: [servicioSettings.tecnico, Validators.required],
        servicio: [servicioSettings.servicio, Validators.required],
        semanaDelAno: [servicioSettings.semanaDelAno, Validators.required],
        diaDeLaSemana: [servicioSettings.diaDeLaSemana, Validators.required],        
        horaInicial: [servicioSettings.horaInicial, Validators.required],
        horaFinal: [servicioSettings.horaFinal, Validators.required]
      });
   }

  ngOnInit(): void {
  }

  onSubmit() {
    if (this.myForm.valid) {
        this.dataService.postServicioSettingsForm(this.myForm.value).subscribe(
            result => console.log('success ', result),
            error => console.log('error ', error)
        );
    }
  }
}
票数 1
EN

Stack Overflow用户

发布于 2021-02-19 22:15:21

请将[formGroup]="form"替换为[formGroup]="myForm"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66285100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档