使用formControlName和ngModel的angular 6警告

Aks*_*hay 35 angular-ngmodel angular angular-reactive-forms

我最近将角度版本升级到6-rc.我得到了以下警告

看起来您在与formControlName相同的表单字段上使用ngModel.Angular v6中不推荐支持将ngModel输入属性和ngModelChange事件与反应式表单指令一起使用,并将在Angular v7中删除

有关此问题的更多信息,请参阅我们的API文档:https: //angular.io/api/forms/FormControlName#use-with-ngmodel

它到底是什么意思?该链接没有任何片段#use-with-ngmodel

我想我需要删除ngModel并使用formGroup作为我的数据绑定对象.

yur*_*zui 31

如果您现在正在寻找Angular 6文档,请使用https://next.angular.io

https://next.angular.io/api/forms/FormControlName#use-with-ngmodel

所以你有3个选择:

  1. 使用反应表格

  2. 使用模板驱动的表单

  3. 沉默警告(不推荐)

    imports: [
      ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl: 'never'});
    ]
    
    Run Code Online (Sandbox Code Playgroud)

  • 哦,我的上帝.改变语法和一直有效的事情有什么意义?我花了一天时间升级到Angular 6,现在发现了这一点.我注意到我的onchange选择事件没有被解雇.这是因为他们将怪异的语法从`onChange`改为`selectionChange`.真有用. (21认同)
  • @Stephane我建议使用反应形式 (5认同)
  • 在没有 ngmodel 的情况下如何获得反应形式的值 (4认同)
  • 还有更多:对于常见的输入(文本,文本区域,选择,复选框等),现在,Angular通过“反应性表单”配置禁用*强制* ...很好...您不能使用所有-时间使用的* disabled = true *。最糟糕的是:如果您创建自己的ui-components库... Angular可能不知道* disabled * ...很好的线索。 (2认同)
  • 对于正在制作的全新应用程序,您会推荐上述 3 种替代方案中的哪一种? (2认同)

Soh*_*war 20

删除[(ngModel)]来自各个领域内formGroup包含formControlName 简单地跟随控制器类和设定值this.form.get('first').setValue('some value');不要靠近或沉默明确的警告

  • @Flash, `this.form.get('fieldName').value` (2认同)

小智 5

添加

[ngModelOptions]="{standalone: true}" 
Run Code Online (Sandbox Code Playgroud)

您可以从 Angular 网站https://angular.io/api/forms/NgModel阅读更多内容

  • 我认为很多人都对 Angular 弃用对“ngModel”与“formControlName”配合使用的支持这一事实感到困惑,而不是完全弃用“ngModel”。 (4认同)