Angular 6 [(ngModel)] 视图未更改组件中的变量
Angular 6 [(ngModel)] in view not changing variable in component
我有一个 ClientModule
模块与主模块 AppModule
分开。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ClientsRoutingModule } from './clients-routing.module';
import { ClientsListComponent } from './clients-list/clients-list.component';
import { ClientAddComponent } from './client-add/client-add.component';
import { ClientDetailComponent } from './client-detail/client-detail.component';
@NgModule({
imports: [
CommonModule,
ClientsRoutingModule
],
declarations: [ClientsListComponent, ClientAddComponent, ClientDetailComponent]
})
export class ClientsModule { }
我在 AppModule
上导入了 FormsModule
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
FormsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
我正在尝试将输入字段从视图绑定到以下组件:
import { Component, OnInit, Input } from '@angular/core';
import { ClientModel } from '../client.model';
@Component({
selector: 'app-client-add',
templateUrl: './client-add.component.html',
styleUrls: ['./client-add.component.scss']
})
export class ClientAddComponent implements OnInit {
fname: string;
lname: string;
constructor() { }
ngOnInit() {
}
createClient() {
console.log(this.fname, this.lname);
}
}
以下是我的看法
<div class="card-body">
<form class="form">
<div class="form-group">
<label for="">First Name {{fname}}</label>
<input type="text" ([ngModel]) = "fname" class="form-control rounded-0" required>
</div>
<div class="form-group">
<label for="">Last Name</label>
<input type="text" ([ngModel]) = "lname" class="form-control rounded-0">
</div>
<button type="button" (click)="createClient()" class="btn btn-success float-center">Create New Client</button>
</form>
</div>
当我点击 Create New Client
按钮时,生成的日志是 undefined undefined
我究竟做错了什么?我花了很多时间在我的代码中解决这个 issue/bug 但到目前为止它没有用。请帮忙。
这可能是不相关的,但我遵循了 angular.io 模块延迟加载指南,其中提到我应该在网络选项卡中进行延迟加载时看到传入的 chunk
文件,但是我不。或许跟它有关系?
编辑
我还尝试在 ClientsModule
中导入 FormsModule
。问题仍然存在。
编辑
但是,[(ngModel)]
在 AppModule
的 app.component.ts
中按预期工作。
我的错。
在我看来ngModel
应该是箱子里的香蕉[(ngModel)]
但是我打错了箱子里的香蕉([])
。
我有一个 ClientModule
模块与主模块 AppModule
分开。
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ClientsRoutingModule } from './clients-routing.module';
import { ClientsListComponent } from './clients-list/clients-list.component';
import { ClientAddComponent } from './client-add/client-add.component';
import { ClientDetailComponent } from './client-detail/client-detail.component';
@NgModule({
imports: [
CommonModule,
ClientsRoutingModule
],
declarations: [ClientsListComponent, ClientAddComponent, ClientDetailComponent]
})
export class ClientsModule { }
我在 AppModule
FormsModule
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
FormsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
我正在尝试将输入字段从视图绑定到以下组件:
import { Component, OnInit, Input } from '@angular/core';
import { ClientModel } from '../client.model';
@Component({
selector: 'app-client-add',
templateUrl: './client-add.component.html',
styleUrls: ['./client-add.component.scss']
})
export class ClientAddComponent implements OnInit {
fname: string;
lname: string;
constructor() { }
ngOnInit() {
}
createClient() {
console.log(this.fname, this.lname);
}
}
以下是我的看法
<div class="card-body">
<form class="form">
<div class="form-group">
<label for="">First Name {{fname}}</label>
<input type="text" ([ngModel]) = "fname" class="form-control rounded-0" required>
</div>
<div class="form-group">
<label for="">Last Name</label>
<input type="text" ([ngModel]) = "lname" class="form-control rounded-0">
</div>
<button type="button" (click)="createClient()" class="btn btn-success float-center">Create New Client</button>
</form>
</div>
当我点击 Create New Client
按钮时,生成的日志是 undefined undefined
我究竟做错了什么?我花了很多时间在我的代码中解决这个 issue/bug 但到目前为止它没有用。请帮忙。
这可能是不相关的,但我遵循了 angular.io 模块延迟加载指南,其中提到我应该在网络选项卡中进行延迟加载时看到传入的 chunk
文件,但是我不。或许跟它有关系?
编辑
我还尝试在 ClientsModule
中导入 FormsModule
。问题仍然存在。
编辑
但是,[(ngModel)]
在 AppModule
的 app.component.ts
中按预期工作。
我的错。
在我看来ngModel
应该是箱子里的香蕉[(ngModel)]
但是我打错了箱子里的香蕉([])
。