我如何知道何时需要向app.module.ts添加内容?

时间:2017-09-08 17:54:47

标签: angular dependencies

我的app.module.ts需要添加FormsModule才能运行我的模板代码我该怎么知道呢?

错误有点神秘,

Can't bind to 'ngModel' since it isn't a known property of 'input'. ("

有什么好处

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

在我的组件中,如果我没有

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

在我的app.module.ts中添加到imports数组中。很明显,我现在知道这是必需的,但我怎么认为知道呢?

  • 这在哪里很容易记录?
  • 我应该注意哪些错误?

imports的角色相比,NgModel数组的作用究竟是什么?

2 个答案:

答案 0 :(得分:2)

每个模块都可以导出一组可声明的类型 - 组件,指令或管道。如果要使用模块中声明的任何声明类型而不是使用声明的模块,则需要导入该模块。

FormsModule导出ngModel指令,这就是您需要导入它的原因。

我建议你阅读Avoiding common confusions with modules in Angular

  

这在哪里很容易记录?

您可以转到documentation of the directive并查看声明它的模块:

Module | import { NgModel } from '@angular/forms';
  

我应该注意哪些错误?

所有错误的格式都相同:

Can't bind to <attribute> since it isn't a known property of <element>

答案 1 :(得分:0)

如果您不想开始阅读Angular教程或书籍,请阅读错误文本。在您的情况下,它声明ngModel不是输入的已知属性。显然,您有一个HTML输入字段,它显然没有ngModel属性。

然后google on ngModel Angular,搜索结果中的第二个链接就是这个:https://angular.io/api/forms/NgModel。它描述了ngModel是什么,并指出您需要导入FormsModel。