[英]Can't bind to 'ngModel' since it isn't a known property of 'textarea'
使用Jasmine测试运行Karma时收到以下错误:
无法绑定到“ ngModel”,因为它不是“ textarea”的已知属性。
虽然,我已经在我的app.module中导入了FormsModule,并且已经将FormsModule添加到testBed中。
应用程序本身可以正常运行,仅在运行Karma时才会出现此问题。
应用程序中没有子模块。
我在Angular CLI 1.0.4中使用Angular 4.0.0。
app.module.ts
@NgModule({
declarations: [
AppComponent,
NoteComponent,
NotesListComponent,
AddNoteButtonComponent,
AboutComponent,
NoteWrapperComponent,
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
CommonModule,
RouterModule.forRoot([ /** Rest of the code... **/
note.component.html
<textarea title="" class="no-extra n-note__textarea n-note__textarea--transparent" [(ngModel)]="note.description"
name="description" (blur)="updateNote($event)">
{{note.description}}
</textarea>
note.component.spec.js
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { HttpModule } from '@angular/http';
import { expect, assert } from 'chai';
import { NoteComponent } from './note.component';
import { Note } from './note';
import { BrowserModule } from '@angular/platform-browser';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
describe('NoteComponent', () => {
let component: NoteComponent;
let fixture: ComponentFixture<NoteComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [NoteComponent],
imports: [HttpModule, BrowserModule, CommonModule, FormsModule],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(NoteComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should be defined', () => {
assert.isDefined(NoteComponent);
});
it('should be created', () => {
expect(component).to.be.an('object');
});
describe('public API', () => {
const note: Note = new Note(1, '', '');
it('markAsDone method should set done parameter to true', () => {
component.note = note;
component.markAsDone();
expect(note._done).to.be.true;
});
it('markAsDiscarded method should set discarded parameter to true', () => {
component.note = note;
component.markAsDiscarded();
expect(note._deleted).to.be.true;
});
it('markAsStarred method should set starred parameter to true', () => {
component.note = note;
component.markAsStarred();
expect(note._starred).to.be.true;
});
});
});
注意我看到您已经完成了此操作,但是,这解决了我的问题。
在我的规范中,我添加了:
import { FormsModule } from '@angular/forms';
然后将FormsModule添加到文本床配置的imports部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.