Angular 角度测试在反应式表单上提交事件 上下文
我有一个基本形式(反应形式)的组件。我尝试在这个表单上测试submit事件,看看它是否正确调用了必要的方法 我的问题 我无法触发表单的提交事件 文件夹 Component.htmlAngular 角度测试在反应式表单上提交事件 上下文,angular,typescript,jasmine,karma-runner,karma-jasmine,Angular,Typescript,Jasmine,Karma Runner,Karma Jasmine,我有一个基本形式(反应形式)的组件。我尝试在这个表单上测试submit事件,看看它是否正确调用了必要的方法 我的问题 我无法触发表单的提交事件 文件夹 Component.html 发送表格 组件技术 组件规范ts 我还尝试了在表单上调用submit: fixture.debugElement.query(By.css('button')).triggerEventHandler('click', null); 如何触发表单提交事件?第一个选项是直接调用ngSubmit: .trigger
发送表格
组件技术
组件规范ts
我还尝试了在表单上调用submit
:
fixture.debugElement.query(By.css('button')).triggerEventHandler('click', null);
如何触发表单提交事件?第一个选项是直接调用
ngSubmit
:
.triggerEventHandler('ngSubmit', null);
第二个选项是导入ReactiveFormsModule
,该模块将在表单上内部设置submit
处理程序。因此,您的触发方法应该有效:
TestBed.configureTestingModule({
declarations: [
MyComponent
],
imports: [ReactiveFormsModule], // <== import it
providers: []
TestBed.configureTestingModule({
声明:[
真菌成分
],
导入:[反应表单模块],//谢谢,它可以工作。我导入了ReactiveFormsModule和FormsModule以避免没有ControlContainer的提供程序
错误。你知道为什么触发我的submit按钮不起作用吗?它不起作用,因为submit事件没有处理程序,因为没有指令来处理它,因为你没有导入R每个包含此指令的活动模板模块谢谢,它听起来合法。它可能会令人失望,但它没有警告我们这一点。。。
.triggerEventHandler('ngSubmit', null);
TestBed.configureTestingModule({
declarations: [
MyComponent
],
imports: [ReactiveFormsModule], // <== import it
providers: []