我的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
数组的作用究竟是什么?
答案 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。