2016-08-11 52 views
4

ngModel时抛出了异常,这个工作罚款RC4该指令[(ngModel)] =不RC5工作了

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

这些是例外:

[email protected]?main=browser:260 Uncaught EXCEPTION: Error in ./CommunityListComponent class CommunityListComponent - inline template:10:27 ORIGINAL EXCEPTION: No value accessor for form control with unspecified name ORIGINAL STACKTRACE: Error: No value accessor for form control with unspecified name

回答

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

+0

感谢功能,它的工作 –

+1

感谢 - 它为我工作,以及 - 尽管我使用rc.5 FromModule和在文档中表示ngModel定义 - 我不知道为什么会发生。 FORM_DIRECTIVES应该被弃用。 –

7

还可以通过导入FormsModule到您的引导模块解决,那么这将是提供给所有组件。

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 

import { AppComponent } from 'app/components/app'; 

@NgModule({ 
    imports: [BrowserModule, FormsModule], 
    declarations: [AppComponent], 
    bootstrap: [AppComponent] 
}) 

export class AppModule { } 
+0

它也在教程本身提及 - [https://angular.io/tutorial/toh-pt1#import-the-formsmodule](https://angular.io/tutorial/toh-pt1#import-the- formsmodule) –

1

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

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

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

0

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

  1. 包括FormsModule在app.module.ts在HTML输入标记

  2. 使用name属性是这样的:

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

这就是全部。

0

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

  1. 进口{ChangeDetectorRef}
  2. 声明其对象构造函数。
  3. this.object.detectChanges();在变化正在作出