Ich versuche, die Zwei-Wege-Bindung von angle2 zur Kontrolle zu testen input
. Hier ist der Fehler:
Can't bind to 'ngModel' since it isn't a known property of 'input'.
Die app.component.html
<input id="name" type="text" [(ngModel)]="name" />
<div id="divName">{{name}}</div>
Die app.component.ts
@Component({
selector: 'app-root',
templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
name: string;
}
app.component.spec.ts
import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';
import { AppService } from './app.service';
describe('App: Cli', () => {
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [
AppComponent
],
providers:[AppService]
});
});
it('divName', async(() => {
let fixture = TestBed.createComponent(AppComponent);
let comp = fixture.componentInstance;
comp.name = 'test';
fixture.detectChanges();
let compiled = fixture.debugElement.nativeElement;
expect(compiled.querySelector('divName').textContent).toContain('test');
}));
});
testing
angular
angular-cli
angular2-testing
beewest
quelle
quelle
Ich hatte das gleiche Problem, auch nach dem Importieren des Formularmoduls wurde dies nicht gelöst. Also musste ich für das Textfeld eine Alternative zu ngModel verwenden. Bitte überprüfen Sie diesen Link :
Zusammenfassend hatte ich [Wert] verwendet, um das Modell für das Textfeld wie folgt zu binden.
Wenn Sie ein Datumsfeld verwenden, müssen Sie das Modell in ts binden. Rufen Sie im HTML die Methode auf
Verwenden Sie im Typenskript den folgenden Code. Dies gilt nur, wenn Sie die Ngbdate-Auswahl verwenden.
quelle