我正在尝试测试控件输入
的angular2双向绑定。以下是错误:
Can't bind to 'ngModel' since it isn't a known property of 'input'.
app.component.html
<input id="name" type="text" [(ngModel)]="name" />
<div id="divName">{{name}}</div>
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');
}));
});
我也有同样的问题,即使在导入表单模块之后,这个问题也没有解决。所以我不得不对文本字段使用替代ngModel。请检查此链接:
总之,我使用[value]为文本字段绑定模型,如下所示。
([value])="searchTextValue"
此外,如果使用日期字段,则需要在TS中绑定模型。在html中,调用
(dateSelect)="onDateSelect($event)"
在类型脚本中,使用以下代码。这只适用于您正在使用Ngbdate选择器的情况。
onDateSelect(event) {
let year = event.year;
let month = event.month <= 9 ? '0' + event.month : event.month;;
let day = event.day <= 9 ? '0' + event.day : event.day;;
let finalDate = year + "-" + month + "-" + day;
this.finalDateVlaue = finalDate;
}
您需要将FormsModule
导入Testbed
配置。
import { FormsModule } from '@angular/forms';
TestBed.configureTestingModule({
imports: [ FormsModule ],
declarations: [
AppComponent
],
providers:[AppService]
});
您使用testbed
所做的是为测试环境从头配置一个NgModule。这允许您只添加测试所需的内容,而没有可能影响测试的不必要的外部变量。
问题内容: 即使未显示组件,启动我的Angular应用程序时也会出现以下错误。 我必须将注释掉,这样我的应用才能正常工作。 我正在查看Hero插件,但与我的代码没有任何区别。 这是组件文件: 问题答案: 是的,就是这样,在app.module.ts中,我刚刚添加了:
我已经和另一张票联系在一起了。这个错误只发生在测试中,我已经导入了每个链接消息的FormsMoules。我使用的是Angular 2.2.1。 在ng test中未定义的ngModel我已经导入了FormsMoules和ReactiveFormsMoules,但没有效果。我已经研究了24小时了,但我还没有接近。大多数都与升级有关,我用同样的问题擦拭并重新启动,使用ng生成创建测试模板时,测试模板非
TestFormComponent应该更新模型值失败错误:模板分析错误:无法绑定到'(NgModel',因为它不是'input'的已知属性。(“][(NgModel]=”ModelValue“/>”) 我已经进口了FormsModule。如果我错过了什么,请指导我
完整代码为: app.module为: 怎么了,为什么对我不起作用?
我正在遵循官方的角“英雄”快速入门教程,同时尝试TDD它。 https://angular.io/docs/ts/latest/tutorial/toh-pt1.html 当我进入替换步骤时: 与 我的Karma test runner抛出以下错误: 错误:模板分析错误:无法绑定到“ng model”,因为它不是“input”的已知属性。(“name:][(ngModel)]=”hero.name
(为简洁起见进行了简化) modal-dialog.html modal-body.html(使用angular2-component-outlet的动态模板)