指令[(ngModel)] =在rc5中不再工作

时间:2016-08-11 02:17:17

标签: angular

ngModel抛出异常,这在rc4中运行良好

<input [(ngModel)]="par.name" placeholder="name" />

以下是例外情况:

  

zone.js@0.6.12?main = browser:260 Uncaught EXCEPTION:错误输入   ./CommunityListComponent类CommunityListComponent - 内联   template:10:27 ORIGINAL EXCEPTION:没有表单控件的值访问器   未指定名称ORIGINAL STACKTRACE:错误:没有值访问器   用于具有未指定名称的表单控件

7 个答案:

答案 0 :(得分:9)

也可以通过将FormsModule导入您的bootstrap模块来解决,然后它将可供所有组件使用。

loadJSONFromAsset()

答案 1 :(得分:3)

试试这个 -

import { Component, OnInit } from '@angular/core';
import { FORM_DIRECTIVES } from '@angular/common';

    @Component({
      selector: 'my-app',
      template: `<h1>My First Angular 2 App</h1>

      <input [(ngModel)]="employee.empName">

      `,
      directives: [FORM_DIRECTIVES]
    })
    export class AppComponent { 
      employee = { empName: 'Sanket', email: '', phone: '', address:'' };

       ngOnInit() { 
       }
    }

这在RC5中对我有用。

参考 - https://angular.io/docs/ts/latest/api/common/index/NgModel-directive.html

答案 2 :(得分:3)

现在您需要在输入上设置名称。例如;

<input [(ngModel)]="par.name" **name="name"** placeholder="name" />

所有指令必须在* .module.ts上设置。

答案 3 :(得分:1)

在app.module.ts

import { FormsModule } from '@angular/forms'; 

然后在@NgModule(){imports:[FormsModule]}与其他工作人员

答案 4 :(得分:0)

在RC5中的表单中使用双向绑定语法时需要做的两件事。

  1. 在app.module.ts

  2. 中包含FormsModule
  3. 在html输入标记中使用name属性,如下所示:

    <input type="text" name="name" [(ngModel)]="par.name" />

  4. 这就是全部。

答案 5 :(得分:0)

您需要明确告诉它正在进行更改。请注意:

  1. 导入{ChangeDetectorRef}
  2. 在构造函数中声明其对象。
  3. 正在进行更改的
  4. this.object.detectChanges();

答案 6 :(得分:0)

还有一个简单的替代品如下:

item: string = "";
<input name= "item" (input)= "item=$event.target.value">
<h1>{{item}}<h1>