Estoy tratando de probar el enlace bidireccional angular2 para el control input
. Aquí está el error:
Can't bind to 'ngModel' since it isn't a known property of 'input'.
El app.component.html
<input id="name" type="text" [(ngModel)]="name" />
<div id="divName">{{name}}</div>
La 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
fuente
fuente
Tuve el mismo problema, incluso después de importar el módulo de formularios, esto no se resolvió. Entonces tuve que usar una alternativa a ngModel para el campo de texto. Por favor, consulte este enlace :
En resumen, usé [valor] para vincular el modelo para el campo de texto de esta manera.
Además, si está utilizando el campo de fecha, debe vincular el modelo en ts. en el html, llame al método
En el script de tipo, use el siguiente código. Esto es aplicable solo si está usando el selector Ngbdate.
fuente