当前位置: 首页 > 知识库问答 >
问题:

Angular-没有将“exportas”设置为“ngmodel”的指令

养昊天
2023-03-14

下面是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……}错误:模板分析错误:没有将

共有1个答案

谢承
2023-03-14

您使用的是模板驱动表单和模型驱动表单的奇怪混合。选择其中一个,不要把这两个混在一起。下面是模型驱动表单的示例:

不需要在模板中设置requiredminlength,我们在组件中处理这个ID。此外,我们不需要任何NGModelName等,因为我们使用的是FormControlName。同时删除与模板驱动表单相关的#f=“NGForm”。因此您的模板应该如下所示:

<form [formGroup]="changePasswordForm">
  <label for="currentPassword">Current Password</label> 
  <input formControlName="currentPassword">
  <button type="submit">Change Password</button>
</form>

并且在构建表单时,我们设置了所需的所有验证器,在本例中为requiredminlength:

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框架时不断地出现这个错误: 这是我的代码 项目依赖项: ...和登录组件: 我有这个错误: