Угловой 6 [(ngModel)] ввиду неизменности переменной в компоненте - PullRequest
0 голосов
/ 24 августа 2018

У меня есть 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 { }

У меня FormsModule импортировано AppModule

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 Что я делаю неправильно? Я потратил много времени на решение этой проблемы / ошибки в моем коде, но пока это бесполезно. Пожалуйста помоги.

И это может быть не связано, но я следовал руководству angular.io по отложенной загрузке модулей, где упоминается, что я должен видеть входящий файл chunk, пока отложенная загрузка происходит на вкладке сети, но я этого не делаю. Может быть, это как-то связано?

EDIT Я также попытался импортировать FormsModule в ClientsModule. Проблема сохраняется.

EDIT Тем не менее, [(ngModel)] работает как положено в app.component.ts из AppModule.

1 Ответ

0 голосов
/ 24 августа 2018

Мой плохой.

На мой взгляд ngModel в банке должен быть банан [(ngModel)], но я набрал опечатку как банан в банане ([]).

...