html - Angular 2 形式 "Cannot Find Control"

标签 html forms typescript angular

我正在尝试使用 Angular 2 Forms 进行验证,但是当我尝试添加多个控件时。似乎它只是被忽略了。我遵循了许多不同的指南来了解其他人是如何做到的,但这些方法似乎都不起作用。

我一直在做的是在我的模板中:

<form [formGroup]="form" novalidate (ngSubmit)="save(form.valid)">
<div class="row" id="message-wrapper">
   <label>Message</label>
   <small [hidden]="form.controls.message.valid || (form.controls.message.pristine && !submitted)">
        Message is required (minimum 10 characters).
    </small>
    <textarea 
        class="textarea-scaled"
        type="text"
        [(ngModel)]="campaign.message"
        formControlName="message"
        placeholder="This will be sent out by supporters with a URL back to this campaign">
     </textarea>
</div>

<div class="row" id="promo-wrapper">
    <label>Promotion: </label>
    <small [hidden]="form.controls.promotion.valid ||(form.controls.promotion.pristine && !submitted)">
      Promotion is required and should be between 10 and 100 characters
    </small>
    <textarea 
        class="textarea-scaled"
        type="text"
        [(ngModel)]="campaign.promotion"
        formControlName="promotion"
        placeholder="What would you like to be sent out in promotional messages?">
    </textarea>
</div>
</form>

然后在我的组件中我这样做:

form: FormGroup;

  constructor(private builder: FormBuilder,
              private _dataservice: DataService) {

      this.form = builder.group({
          "message": ['', [Validators.required, Validators.minLength(10)]],
          "promotion": ['', [Validators.required, Validators.minLength(10)]]
      });
  }

但我不断收到“无法找到控件‘升级’”控制台错误...

任何帮助将不胜感激!

最佳答案

这可能不是原始问题的答案,但如果您从 google 跳转到这里,这可能会有用。

你需要检查这些东西。

  1. 对于所有具有 [ngModel]

  2. 的控件,您必须具有“name”属性
  3. 如果您从验证中排除某些字段,则添加 [ngModelOptions]="{standalone: true}"(记住第一条规则,您仍然需要一个“名称”)

  4. 确保您有要验证的控件的 formControlName 属性。 (记住第一条规则)

关于html - Angular 2 形式 "Cannot Find Control",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38594344/

相关文章:

generics - 如何让这个 Typescript typeguard 在泛型上下文中工作?

html - 如何删除表单字段之间的垂直间距?

javascript - 在 Webpack 2 中使用 TypeScript 加载 SASS 模块

html - 导致 DIV 上的文本随着大小的变化而隐藏

javascript - 没有 jquery ui 的垂直选项卡

javascript - Angular : $setPristine on Form and Checkbox Issue

javascript - 为什么 validateform() 返回 false 时提交了表单?

javascript - 返回 Promises 数组的函数类型应该是什么

jquery - 如何在 WordPress 的动态 Bootstrap 导航栏菜单中选择特定列表项

javascript - 使用 JS 显示计算的 HTML 输出