Ant*_*ère 1173 javascript input typescript angular
启动Angular应用程序时出现以下错误,即使未显示该组件也是如此.
我必须注释掉,以便我的应用程序正常运行.
zone.js:461 Unhandled Promise rejection: Template parse errors:
Can't bind to 'ngModel' since it isn't a known property of 'input'. ("
<div>
<label>Created:</label>
<input type="text" [ERROR ->][(ngModel)]="test" placeholder="foo" />
</div>
</div>"): InterventionDetails@4:28 ; Zone: <root> ; Task: Promise.then ; Value:
Run Code Online (Sandbox Code Playgroud)
我正在看着英雄的掠夺者,但我没有看到任何区别.
这是组件文件:
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { Intervention } from '../../model/intervention';
@Component({
selector: 'intervention-details',
templateUrl: 'app/intervention/details/intervention.details.html',
styleUrls: ['app/intervention/details/intervention.details.css']
})
export class InterventionDetails
{
@Input() intervention: Intervention;
public test : string = "toto";
}
Run Code Online (Sandbox Code Playgroud)
Ant*_*ère 1662
是的,就是它,在app.module.ts中,我刚刚补充说:
import { FormsModule } from '@angular/forms';
[...]
@NgModule({
imports: [
[...]
FormsModule
],
[...]
})
Run Code Online (Sandbox Code Playgroud)
小智 501
为了能够对表单输入使用双向数据绑定,您需要FormsModule
在Angular
模块中导入包.有关更多信息,请参阅此处的Angular 2
官方教程和表单的官方文档
Ali*_*eza 224
对于使用[(ngModel)]
在角2,4&5+,你需要导入FormsModule从角形态...
它也是在github中Angular repo中的表单下的这条路径中:
angular/packages/forms/src/directives/ng_model.ts
也许这不是一个非常高兴的AngularJs开发者,你可以使用NG-模型之前的任何时间无处不在,但作为角试图单独的模块来使用任何你想你想的时候使用,ngModel是FormsModule现在.
此外,如果您使用ReactiveFormsModule,也需要导入它.
所以只需查找app.module.ts并确保已FormsModule
导入...
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms'; //<<<< import it here
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule, FormsModule //<<<< and here
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
这也是FormsModule ngModel
中Angular4的当前开始注释:
/**
* `ngModel` forces an additional change detection run when its inputs change:
* E.g.:
* ```
* <div>{{myModel.valid}}</div>
* <input [(ngModel)]="myValue" #myModel="ngModel">
* ```
* I.e. `ngModel` can export itself on the element and then be used in the template.
* Normally, this would result in expressions before the `input` that use the exported directive
* to have and old value as they have been
* dirty checked before. As this is a very common case for `ngModel`, we added this second change
* detection run.
*
* Notes:
* - this is just one extra run no matter how many `ngModel` have been changed.
* - this is a general problem when using `exportAs` for directives!
*/
Run Code Online (Sandbox Code Playgroud)
如果你想使用你的输入,而不是表格,你可以使用它ngModelOptions
并使其独立真实 ......
[ngModelOptions]="{standalone: true}"
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请在此处查看Angular部分中的ng_model
小智 85
您需要导入FormsModule
打开app.module.ts
并添加行
import { FormsModule } from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)
和
@NgModule({
imports: [
FormsModule
],
})
Run Code Online (Sandbox Code Playgroud)
Kho*_*Phi 49
投掷这可能会帮助某人.
假设你已经创建了一个新的NgModule,说AuthModule
专门处理您的验证需求,确保导入FormsModule
该AuthModule 过.
如果您将FormsModule
在AuthModule
当时使用ONLY,则无需导入FormModule
IN默认值AppModule
所以这样的事情在AuthModule
:
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { authRouting } from './auth.routing';
import { LoginComponent, SignupComponent } from './auth.component';
@NgModule({
imports: [
authRouting,
FormsModule
],
declarations: [
SignupComponent,
LoginComponent
]
})
export class AuthModule { }
Run Code Online (Sandbox Code Playgroud)
AppModule
如果你不使用FormsModule
其他任何地方,请忘记导入.
Tha*_*han 40
您需要导入FormsModule
.
打开app.module.ts并添加行
import { FormsModule } from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)
和
@NgModule({
imports: [
FormsModule
],
})
Run Code Online (Sandbox Code Playgroud)
Sha*_*pta 37
简单的 灵魂:在app.module.ts
import {FormsModule} from "@angular/forms";
// add in imports
imports: [
BrowserModule,
FormsModule
],
Run Code Online (Sandbox Code Playgroud)
例2:
如果你想使用[(ngModel)],你必须在app.module.ts中导入FormsModule
import { FormsModule } from "@angular/forms";
@NgModule({
declarations: [
AppComponent, videoComponent, tagDirective,
],
imports: [
BrowserModule, FormsModule
],
providers: [ApiServices],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
小智 36
要摆脱此错误,您需要遵循两个步骤
app.module.ts基本上如下所示:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import {AppChildComponent} from './appchild.component';
@NgModule({
imports: [ BrowserModule,FormsModule ],
declarations: [ AppComponent, AppChildComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你
Wap*_*vam 27
您需要导入FormsModule您在根模块如果此组件是根,即app.module.ts
请打开app.module.ts
从@ angular / forms导入FormsModule
例如:
import { FormsModule } from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)
和
@NgModule({
imports: [
FormsModule
],
})
Run Code Online (Sandbox Code Playgroud)
Sha*_*dit 22
在您的app模块中导入FormsModule.
它会让你的应用程序运行良好.
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import {ContactListCopmponent} from './contacts/contact-list.component';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
@NgModule({
imports: [
BrowserModule,
FormsModule
],
declarations: [
AppComponent,ContactListCopmponent
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
iGh*_*ost 20
如果你需要使用[(ngModel)]
第一你需要导入FormsModule
的app.module.ts
,然后在进口的列表中添加.像这样的东西:
app.module.ts
import {FormsModule} from "@angular/forms";
imports: [
BrowserModule,
FormsModule
],
app.component.ts
<input type="text" [(ngModel)]="name" >
<h1>your name is: {{name}} </h1>
小智 19
我正在使用Angular 7
我必须导入ReactiveFormsModule,因为我正在使用FormBuilder类创建反应形式。
import {
FormsModule,
ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule
], declarations: []})
Run Code Online (Sandbox Code Playgroud)
小智 17
import { FormsModule } from '@angular/forms'; [...] @NgModule({ imports: [ [...] FormsModule ], [...] })
Run Code Online (Sandbox Code Playgroud)
ren*_*hlf 16
我正在使用Angular 5.
就我而言,我也需要导入RactiveFormsModule.
app.module.ts(或anymodule.module.ts)
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule
],
Run Code Online (Sandbox Code Playgroud)
小智 16
您需要在 app.module.ts 中导入 FormsModule 并添加以下行
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
FormsModule
]
})
Run Code Online (Sandbox Code Playgroud)
FormsModule 中声明的 ngModel 指令允许您将模板驱动表单中的控件绑定到数据模型中的属性。当您使用双向数据绑定语法 [(ngModel)] 包含指令时,Angular 可以跟踪控件的值和用户交互,并使视图与模型保持同步。
小智 15
如果有人在应用接受的解决方案后仍然出现错误,则可能是因为您在组件中有一个单独的模块文件,您要在其中使用输入标记中的ngModel属性.在这种情况下,也可以在组件的module.ts文件中应用已接受的解决方案.
mru*_*ova 13
如果您在正确导入FormsModule后仍然出现错误,请检查您的终端或(Windows控制台),因为您的项目没有编译(因为可能是其他任何错误)并且您的解决方案没有反映在您的浏览器中!
在我的情况下,我的控制台有以下无关的错误:类型'ApiService'上不存在属性'retrieveGithubUser'.
Mat*_*att 13
我知道这个问题是关于Angular 2的,但我在Angular 4上,这些答案都没有帮助.
在Angular 4中,语法需要
[(ngModel)]
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
小智 12
ngModel应该从@angular/forms导入,因为它是 FormsModule 的一部分。所以我建议你改变你的 app.module.ts 像这样:
import { FormsModule } from '@angular/forms';
[...]
@NgModule({
imports: [
[...]
FormsModule
],
[...]
})
Run Code Online (Sandbox Code Playgroud)
Mal*_*wan 11
在模块中,您愿意使用ngModel,您必须导入FormsModule
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
FormsModule,
],
})
export class AbcModule { }
Run Code Online (Sandbox Code Playgroud)
Nae*_*hir 10
您需要导入 FormsModule。
#Open app.module.ts
#add the lines
import { FormsModule } from '@angular/forms';
and
@NgModule({
imports: [
FormsModule <--------add this
],
})
if you are using reactive form then also added ReactiveFormsModule
Run Code Online (Sandbox Code Playgroud)
ngModel来自FormsModule.在某些情况下,您可能会收到此类错误:
在ngModule
您需要导入的时候FormsModule
,因为ngModel
是来自FormsModule
。请像我分享的以下代码一样修改您的app.module.ts
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
declarations: [
AppComponent,
HomeComponent
],
imports: [
BrowserModule,
AppRoutingModule,
FormsModule
],
bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
ngModel是FormsModule的一部分。并且应该从@ angular / forms导入以与ngModel一起使用。
请按以下方式更改app.module.ts:
import { FormsModule } from '@angular/forms';
[...]
@NgModule({
imports: [
[...]
FormsModule
],
[...]
})
Run Code Online (Sandbox Code Playgroud)
对于我的场景,我必须将[CommonModule]和[FormsModule]都导入到我的模块中
import { NgModule } from '@angular/core'
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { MyComponent } from './mycomponent'
@NgModule({
imports: [
CommonModule,
FormsModule
],
declarations: [
MyComponent
]
})
export class MyModule { }
Run Code Online (Sandbox Code Playgroud)
小智 7
您需要导入FormsModule
打开app.module.ts
并添加行
import { FormsModule } from '@angular/forms';
Run Code Online (Sandbox Code Playgroud)
和
@NgModule({
imports: [
FormsModule
],
})
Run Code Online (Sandbox Code Playgroud)
有时,如果我们已经导入了BrowserModule
,FormsModule
但我遇到了同样的错误,但其他相关的模块,则我意识到我们需要将它们导入Order中,在我的情况下,我错过了它。所以顺序应该是这样 BrowserModule
,FormsModule
,ReactiveFormsModule
。
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
@NgModule({
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule
],
providers: [],
declarations: [
AppComponent
],
bootstrap: [AppComponent]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助某人.. :)
我遇到了同样的问题,原因是我在我的MenuComponent
. 我导入了我的MenuComponent in app.module.ts
,但我忘记声明它。
声明 MenuComponent 解决了我的问题。即,如下图所示:
这适用于使用普通JavaScript而不是Type Script的人们。除了引用页面顶部的表单脚本文件外,如下所示
<script src="node_modules/@angular/forms/bundles/forms.umd.js"></script>
Run Code Online (Sandbox Code Playgroud)
您还应该告诉模块加载器加载ng.forms.FormsModule
。进行更改后imports
,NgModule
方法的属性如下所示
imports: [ng.platformBrowser.BrowserModule, ng.forms.FormsModule],
编码愉快!
当您尝试在不同模块中使用未共享的模块中的组件时,有时会出现此错误.
例如,你有2个模块与module1.componentA.component.ts和module2.componentC.component.ts,你尝试在module2内的模板中使用module1.componentA.component.ts中的选择器(例如<module1-componentA [someInputVariableInModule1]="variableFromHTTPRequestInModule2">
),它会抛出someInputVariableInModule1在module1.componentA.component.ts中不可用的错误 - 即使你@Input() someInputVariableInModule1
在module1.componentA中也有.
如果发生这种情况,您希望共享module1.componentA以便在其他模块中可访问.因此,如果您在sharedModule中共享module1.componentA,则module1.componentA将在其他模块(在module1之外)中可用,并且导入sharedModule的每个模块将能够在其模板中访问注入@Input()
声明的变量的选择器.
小智 6
对我来说,问题是,我忘记在模块的声明数组中声明该组件。
@NgModule({
declarations: [yourcomponentName]
})
Run Code Online (Sandbox Code Playgroud)
小智 6
实际上在大多数情况下FormsModule
已经进口了。所以你必须做的是你必须确保
[(ngModel)]
当我第一次做这个教程时,main.ts 看起来与现在略有不同。它看起来非常相似,但请注意不同之处(最上面的是正确的)。
正确的:
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
Run Code Online (Sandbox Code Playgroud)
旧教程代码:
import { bootstrap } from '@angular/platform-browser-dynamic';
import { AppComponent } from './app.component';
bootstrap(AppComponent);
Run Code Online (Sandbox Code Playgroud)
我从RC1升级到RC5,并收到此错误。
我完成了迁移(基于Angular2快速入门示例app.module.ts
,引入了一个新文件,更改package.json
为包括新版本和缺少的模块,最后更改main.ts
为相应地启动)。
我先做了一次npm update
,然后再一次npm outdated
确认安装的版本正确,但是仍然没有运气。
我最终完全清除了该node_modules
文件夹,然后重新安装npm install
-Voila!问题解决了。
结合所有可能的解决方案:
在 app.module.ts 中,添加以下行
import { FormsModule } from '@angular/forms';
@NgModule({
declarations: [
],
imports: [
xyz,
abc,
FormsModule
],
})
Run Code Online (Sandbox Code Playgroud)
将表单组件直接导入到独立组件中:
import { FormsModule, NgForm } from '@angular/forms';
import { NgFor } from "@angular/common";
@Component({
selector: 'app-table-view',
standalone: true,
imports: [
NgFor,
FormsModule
],
templateUrl: './table-view.component.html',
styleUrls: ['./table-view.component.css']
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
701182 次 |
最近记录: |