【问题标题】:How can I know the relation between a `FormsModule` and `ngModel`?我如何知道 `FormsModule` 和 `ngModel` 之间的关系?
【发布时间】:2018-03-19 14:53:33
【问题描述】:

在 Angular hero 编辑器教程中,我有一个关于 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';

并将其添加到AppModuleimports

@NgModule({
  declarations: [
    AppComponent,
    HeroesComponent
  ],
  imports: [
    BrowserModule,
    FormsModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

会好的。

我的问题是我找不到FormsModulengModel 之间的任何关系,我只是在这里导入FormsModule,而ngModel 在另一个地方工作,就像魔术一样。

我也去FormsModule的定义,很简单:

export declare class FormsModule {
}

因此,如果没有该文档,则代码中没有任何线索表明 ngModel 来自 FormsModule。我虽然在某个地方可能有类似import ngModel from FormsModule 的东西,但没有。

【问题讨论】:

标签: angular module directive


【解决方案1】:

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

话虽如此,在使用库时,文档应该始终是您首先需要查看的地方,而不是类型定义或源代码。通常它都在文档中,当然对于一些更隐蔽的库来说可能不是。

【讨论】:

    猜你喜欢
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 2015-09-30
    • 2018-04-11
    • 1970-01-01
    • 2021-08-18
    相关资源
    最近更新 更多