Angular 2 RC4中的表格

hho*_*tij 12 angular

我正在试验Angular 2 RC4中的表格.一切正常但是当我启动应用程序时,浏览器控制台会给我这样的消息:

*It looks like you're using the old forms module. This will be opt-in in the next RC, and will eventually be removed in favor of the new forms module.
Run Code Online (Sandbox Code Playgroud)

我的组件的相关部分如下所示:

import {
    FORM_DIRECTIVES,
    REACTIVE_FORM_DIRECTIVES,
    FormBuilder,
    FormGroup
} from '@angular/forms';
import {Observable} from "rxjs/Rx";

@Component
({
    selector: "hh-topbar",
    moduleId: module.id,
    templateUrl: "topBar.component.html",
    directives: [HHPagerComponent, FORM_DIRECTIVES, REACTIVE_FORM_DIRECTIVES]
})

export class HHTopBarComponent implements OnChanges, OnInit
{
    ...
    private filterForm: FormGroup;
    private title$: Observable<string>;

    constructor(private formBuilder: FormBuilder)
    {
    }

    public ngOnInit(): any
    {
        this.filterForm = this.formBuilder.group
        ({
            "title": [this.info.filters.searchFileName]
        });

        this.title$ = this.filterForm.controls["title"].valueChanges;
        this.title$.subscribe(val =>
        {
            this.info.filters.searchFileName = val;
            this.filterChanged.emit(this.info.filters);
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我的模板的相关部分如下所示:

<form [formGroup]="filterForm">
    <div>
        <label for="title">Title</label>
        <input [formControl]="filterForm.controls['title']" id="title" />
    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

这里有人知道警告所讨论的新表格模块是什么,哪些指令会改变以及什么?

Thi*_*ier 16

在引导应用程序时,您需要显式禁用已弃用的表单支持:

import {disableDeprecatedForms, provideForms} from '@angular/forms';

bootstrap(AppComponent, [
  disableDeprecatedForms()
  provideForms()
]);
Run Code Online (Sandbox Code Playgroud)

虽然FormBuilder不推荐使用,但您可以直接使用FormGroup该类:

this.filterForm = new FormGroup({
  title: new FormControl('', Validators.required)
});
Run Code Online (Sandbox Code Playgroud)

  • @PardeepJain - 我相信REACTIVE_FORM_DIRECTIVES包含模型驱动表单的指令(例如formControlName),而FORM_DIRECTIVES包含指令形式的模板驱动表单(例如ngModel). (4认同)