角度5和.netcore中的参考错误

问题描述 投票:0回答:1

我正在尝试向我的控制器做一个简单的表单发布但我不断收到以下错误:无法访问未定义的用户名。据我所知,我正在初始化我的登录组件中的usermodel,但不知道为什么它仍然是错误的。

有没有人有任何想法?

HTML

   <form #loginForm="ngForm" (ngSubmit) ="OnSubmit(loginForm)">
  <div class="form-row">
    <div class="form-group col-md-6">
      <input type="text" name="username" #username="ngModel" [(ngModel)]="user.username" class="form-control" />
    </div>
    <div class="form-group col-md-6">
      <input type="text" name="password" #password="ngModel" [(ngModel)]="user.password" class="form-control" />
    </div>
  </div>
  <div class="form-group">
    <button type="submit" class="btn btn-block btn-lg">login</button>
  </div>

user.model.ts

export class UserModel {
  username: string;
  password: string;
}

user.service.ts

    import { HttpClient, HttpHeaders } from '@angular/common/http';
import { UserModel } from './user.model';
import { Inject, Injectable } from '@angular/core';

@Injectable()
export class UserService {
  constructor(private http: HttpClient) { }


  postUser(user: UserModel, @Inject('BASE_URL') baseUrl: string) {
    return this.http.post(baseUrl + '/Test/Register', new HttpHeaders({ 'username': user.username, 'password': user.password })).subscribe(result => {
      console.error(result)
    }, error => console.error(error));
  }

login.component.ts

  import { Component, Inject, OnInit } from '@angular/core';
import { NgForm } from '@angular/forms';
import { UserModel } from './user.model';
import { UserService } from './user.service';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.css']
})


export class LoginComponent implements OnInit {

  user: UserModel

  constructor(private userService: UserService) { }

  ngOnInit() {
    this.resetForm();
  }
  resetForm(form?: NgForm) {
    if (form != null) {
    form.reset();
      this.user = {
      username: '',
      password: ''
      }
    }
  }

  onSubmit(form: NgForm) {
    this.userService.postUser(form.value, "https://localhost:44327/");
  };
asp.net-core angular5
1个回答
0
投票

这是因为您在加载此页面时未初始化this.user

试试这个:

resetForm(form?: NgForm) {
    if (this.user == undefined) {
        this.user = new UserModel();
    }
    if (form != null) {
        form.reset();
        this.user = {
            username: '',
            password: ''
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.