我怎么知道`FormsModule`和`ngModel`之间的关系?

时间:2018-03-19 14:53:33

标签: angular module directive

从角度英雄编辑器教程中,我有一个关于FormsModule的问题。

在此部分中,如果不导入FormsModule,演示将无法运行:  https://angular.io/tutorial/toh-pt1#the-missing-formsmodule

The missing FormsModule
Notice that the app stopped working when you added [(ngModel)].

然后

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

并将其添加到imports的{​​{1}}:

AppModule

没关系。

我的问题是我找不到@NgModule({ declarations: [ AppComponent, HeroesComponent ], imports: [ BrowserModule, FormsModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } FormsModule之间的任何关系,我只是在这里导入ngModelFormsModule正在另一个地方工作,就像魔法一样

我也转到ngModel的定义,这很简单:

FormsModule

因此,如果没有该文档,export declare class FormsModule { } 来自ngModel的代码就没有任何线索。我虽然某处可能有类似FormsModule的东西,但却没有。

1 个答案:

答案 0 :(得分:1)

Angular团队使用的模式是这里和那里有public_api.d.ts个文件,用于定义导出。在这种情况下,如果您转到父文件夹,您将找到该文件。然后你会看到它从./src/forms.d.ts导出所有内容,如果你查看该文件,你会发现该模块实际导出的所有内容。

话虽如此,文档应该始终是您在使用库时需要查看的第一个地方,而不是键入defs或源代码。通常它都在文档中,但当然在某些更阴暗的库中它可能不是。