在Angular 2+中使用模板驱动的表单,我希望使用表单中的子组件来更容易地对表单元素进行单元测试。也就是说,我希望能够禁用submit按钮With template reference variables(ie)按钮[disabled]=“!myform.form.valid”
。我知道有些东西应该从父窗体传递到子组件,但我还不知道这是什么,也不知道应该使用什么语法。
我已经看过以下链接,但它们在真正的输入控制定制与访问模板引用变量方面有更多的工作要做:
如何从angular 6 https://blog.thoughtram.io/angular/2016/07/27/custom-form-controls-in-Angular-2.html#中的组件添加模板驱动窗体中的验证
声明ControlContainer
@Component({
selector: 'my-hero-name',
templateUrl: './app.hero-name.html',
viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]
})
export class HeroNameComponent {
@Input() hero: Hero;
}
export class Hero {
constructor(public name: string) { }
}
分叉示例:https://stackblitz.com/edit/angull-vmqm8h参考:https://medium.com/@a.yurich.zuev/angull-nested-template-drived-form-4a3de2042475
是否可以在模板驱动的表单中使用ngFor创建输入字段,并使用类似#name=“ngmodel”的东西来在另一个标记中使用name.valid? 现在,我们有一个动态的产品列表,在一个表中有一个数量字段和一个添加到购物车按钮。我想把整个事情变成一个表单,末尾有一个add all按钮,如下所示: 但是如何为NGModel每行生成一个新的变量名呢?
我正在学习角度,我不知道如何重置模板驱动表单的验证。 提前致谢
问题内容: 单击后,我编写了以下代码以禁用网站上的提交按钮: 不幸的是,它没有发送表格。我怎样才能解决这个问题? 编辑 我想绑定提交,而不是表格:) 问题答案: 做到: 发生的事情是您实际上在完全触发该提交事件之前禁用了该按钮。 您可能还应该考虑使用ID或CLASS来命名元素,因此不要在页面上选择所有提交类型的输入。 (请注意,我使用,因此该表单在示例中并未实际提交;请在使用时将其保留。)
问题内容: 我有一个HTML表单,其中使用了几个按钮。问题是,无论我单击哪个按钮,即使该按钮的类型不是“ submit”,也将提交表单。例如:之类的按钮,导致表单提交。 为这些按钮中的每个按钮执行一次操作是非常痛苦的。 我使用jQuery和jQuery UI,并且网站使用HTML5。 有没有办法禁用这种自动行为? 问题答案: 像按钮 是 提交按钮。 设置以改变它。是默认值(由HTML建议指定)。
首先,考虑一个典型的表单: index.html signup-form.component.ts