解决了
username.component.html
<p>
<mat-form-field appearance="outline">
<mat-label>Username</mat-label>
<input matInput required type="text" class="input"
[(ngModel)]="value" (keyup)="newUsername(value)">
<button mat-icon-button matSuffix disabled>
<mat-icon matSuffix>account_circle</mat-icon>
</button>
</mat-form-field>
</p>
username.compoment.ts
import { Component, EventEmitter, OnInit, Output } from '@angular/core';
import { FormControl, Validators } from '@angular/forms';
@Component({
selector: 'username',
templateUrl: './username.component.html',
styleUrls: ['./username.component.scss']
})
export class UsernameComponent implements OnInit {
constructor() {
}
ngOnInit(): void {
}
value: string = '';
@Output() username: EventEmitter<string> = new EventEmitter();
newUsername(value: string) {
this.username.emit(value);
}
}
signin.component.html
<app-header></app-header>
<form>
<username (username)="username($event)"></username>
<password (password)="password($event)"></password>
<p class="button signin">
<button mat-raised-button color="primary" type="button"
(click)="onSubmit()" (keyup.enter)="onSubmit()">Sign in
</button>
</p>
</form>
<app-footer></app-footer>
signin.compoment.ts
import { Component, OnInit } from '@angular/core';
import { SigninService } from './signin.service';
import { Signin } from './signin';
@Component({
selector: 'app-signin',
templateUrl: './signin.component.html',
styleUrls: ['./signin.component.scss']
})
export class SigninComponent implements OnInit {
constructor(
private service: SigninService
) {
}
ngOnInit(): void {
}
signin: Signin = {
username: '',
password: ''
};
username(value: string) {
this.signin.username = value;
}
password(value: string) {
this.signin.password = value;
}
onSubmit() {
return this.service.post(this.signin);
}
}