Angular 2:无法将“ngModel”绑定到“input”的已知属性,因为它不是已知属性。
Angular 2:无法将“ngModel”绑定到“input”的已知属性,因为它不是已知属性。
我正在尝试在Angular 2中实现动态表单。我添加了其他功能,如删除和取消到动态表单中。
我遵循了这个文档:https://angular.io/docs/ts/latest/cookbook/dynamic-form.html
我对代码进行了一些更改。我在这里遇到错误。
我该如何解决这个错误?
您可以在这里找到完整的代码:http://plnkr.co/edit/SL949g1hQQrnRUr1XXqt?p=preview ,它在plunker上运行正常,但在我的本地系统上无法运行。
Html代码:
Saved the following values {{payLoad}}
组件代码:
import { Component, Input, OnInit } from '@angular/core'; import { FormGroup, REACTIVE_FORM_DIRECTIVES } from '@angular/forms'; import { QuestionBase } from './question-base'; import { QuestionControlService } from './question-control.service'; import { ControlGroup } from '@angular/common'; import {ChangeDetectorRef} from '@angular/core'; import { FormsModule } from '@angular/forms'; @Component({ selector: 'dynamic-form', templateUrl: 'app/dynamicform/form.component.html', directives: [REACTIVE_FORM_DIRECTIVES], providers: [QuestionControlService] }) export class DynamicFormComponent implements OnInit { @Input() questions: QuestionBase[] = []; form: FormGroup; payLoad:any; payLoad2:any; questiont: QuestionBase; questiond: QuestionBase; constructor(private qcs: QuestionControlService, private cdr: ChangeDetectorRef) { } ngOnInit() { this.form = this.qcs.toFormGroup(this.questions); console.log("Form Init",this.questions); this.questiont = JSON.parse(JSON.stringify(this.questions)); this.questiond = JSON.parse(JSON.stringify(this.questions)); } onSubmit() { this.payLoad = JSON.stringify(this.form.value); this.payLoad2=this.payLoad; this.questiont = JSON.parse(JSON.stringify(this.questions)); console.log("Submitted data",this.questions); } cancel(){ console.log("Canceled"); this.questions = JSON.parse(JSON.stringify(this.questiont)); } clear(){ this.questions = JSON.parse(JSON.stringify(this.questiond)); this.questiont = JSON.parse(JSON.stringify(this.questiond)); console.log("Cleared"); this.cdr.detectChanges(); } }
admin 更改状态以发布 2023年5月22日
为了在使用 AppModules (NgModule) 时让 ngModel 正常工作,您需要在 AppModule 中导入 FormsModule 。像这样:
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { FormsModule } from '@angular/forms'; import { AppComponent } from './app.component'; @NgModule({ declarations: [AppComponent], imports: [BrowserModule, FormsModule], bootstrap: [AppComponent] }) export class AppModule {}
找到了快速解决方案,更新你的 @NgModule 代码如下:
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { FormsModule } from '@angular/forms'; import { AppComponent } from './app.component'; @NgModule({ imports: [ BrowserModule, FormsModule ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }