下面是AngularJS项目中的文件。正如在一些帖子中所建议的,我已经补充了:
ngModel name="currentPassword" #currentPassword="ngModel
输入字段中,但仍然得到一个错误。
.........
"dependencies": {
"@angular/common": "^2.3.1",
"@angular/compiler": "^2.3.1",
"@angular/core": "^2.3.1",
"@angular/forms": "^2.3.1",
"@angular/http": "^2.3.1",
"@angular/platform-browser": "^2.3.1",
"@angular/platform-browser-dynamic": "^2.3.1",
"@angular/router": "^3.3.1",
"core-js": "^2.4.1",
"rxjs": "^5.0.1",
"ts-helpers": "^1.1.1",
"zone.js": "^0.7.2"
},
...............
<form #f="ngForm" [formGroup]="changePasswordForm">
<div class="form-group">
<label for="currentPassword">Current Password</label> <input
placeholder="currentPassword" ngModel name="currentPassword"
#currentPassword="ngModel" id="currentPassword"
name="currentPassword" type="text" class="form-control" required
minlength="6" formControlName="currentPassword">
</div>
</div>
<button class="btn btn-primary" type="submit">Change Password</button>
</form>
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators, ControlContainer, FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'app-change-password',
templateUrl: './change-password.component.html',
styleUrls: ['./change-password.component.css']
})
export class ChangePasswordComponent implements OnInit {
changePasswordForm;
constructor(formBuilder: FormBuilder) {
this.changePasswordForm = formBuilder.group({
currentPassword: new FormControl('', Validators.compose([Validators.required]))
});
}
ngOnInit() {
}
}
............
imports: [
BrowserModule,
HttpModule,
FormsModule,
ReactiveFormsModule
]
...........
我得到以下错误:
未处理的promise拒绝:模板分析错误:没有将“exportas”设置为“ngmodel”的指令(“urrent Password]#currentpassword=”ngmodel“id=”currentpassword“name=”currentpassword“type=”text“class=”form-co“):ChangePasswordComponent@5:4;zone:;task:Promise.then;值:语法错误{__zone_symbol__error:错误:模板分析错误:没有将”exportas“设置为”ngmodel“的指令(”urrent passwo……}错误:模板分析错误:没有将
您使用的是模板驱动表单和模型驱动表单的奇怪混合。选择其中一个,不要把这两个混在一起。下面是模型驱动表单的示例:
不需要在模板中设置required
或minlength
,我们在组件中处理这个ID。此外,我们不需要任何NGModel
、Name
等,因为我们使用的是FormControlName
。同时删除与模板驱动表单相关的#f=“NGForm”
。因此您的模板应该如下所示:
<form [formGroup]="changePasswordForm">
<label for="currentPassword">Current Password</label>
<input formControlName="currentPassword">
<button type="submit">Change Password</button>
</form>
并且在构建表单时,我们设置了所需的所有验证器,在本例中为required
和minlength
:
constructor(formBuilder: FormBuilder) {
this.changePasswordForm = formBuilder.group({
currentPassword: new FormControl('',
Validators.compose([Validators.required, Validators.minLength(6)]))
});
}
原来就是这样!:)
我建议您阅读有关表单的内容,这里是模板驱动表单的指南和反应表单的指南
编辑:
<small *ngIf="changePasswordForm.get('currentPassword').hasError('required')">Required!</small>
<small *ngIf="changePasswordForm.get('currentPassword').hasError('minlength')">Minimum 6 chars</small>
更新的演示
以下是AngularJS项目中的文件。正如一些帖子所建议的,我补充道: 在输入字段中,但仍然得到一个错误。 包裹json change-password.component.html 更改密码。组成部分ts 应用程序。单元ts有进口产品 我得到以下错误: 未处理的Promise拒绝:模板解析错误:没有将exportAs设置为ngModel的指令(当前密码)#当前密码=ngModel id=当前密码
我在使用angular 4时遇到了一个问题 没有将“exportas”设置为“ngModel”的指令(“name=”fullname“type=”text“required maxlength=”30“[(ngModel)=”model.fullname“[ERROR->]#fullname=”ngModel“> app.module.ts
当我尝试测试时,得到以下错误 我的组件看起来像的一部分, 似乎无法使用上述提供程序、声明等创建假组件。就像其他人所说的,我已经在装饰器中包含了。
我在RC4上,我得到了一个错误,因为我的模板没有将“exportas”设置为“ngform”的指令: boot.ts: ///下面是我的下拉列表:
我正面临着一个令人沮丧的问题 没有将“exportas”设置为“ngform”的指令(“ ]#f=”ngform“(ngSubmit)=”onsubmit(f)“class=”form-hosteral“>”):ng:///componentsmodule/equipeComponent.html@8:12错误:模板解析错误:没有将“exportas”设置为“ngform”(“]#f=”ngfor
我在使用Typescript的Angular2-forms框架时不断地出现这个错误: 这是我的代码 项目依赖项: ...和登录组件: 我有这个错误: