Angular 5 - 无法绑定到“ngFormOptions”,因为它不是“form”的已知属性

Gur*_*Rao 5 angular angular5

我们最近刚刚将我们的应用程序 Angular 版本v5更新为新的更新表单支持的一部分,ngFormOptions以配置form elements某些事件的验证。以下是我们所做的:

<form class="example-form" autocomplete="off" [ngFormOptions]="{updateOn:'submit'}" [formGroup]="testform">

</form>
Run Code Online (Sandbox Code Playgroud)

但它抛出以下错误

无法绑定到“ngFormOptions”,因为它不是“form”的已知属性

在更新后应用程序的依赖项下方。

包.json

"dependencies": {
    "@angular/animations": "5.0.0-rc.5",
    "@angular/common": "5.0.0-rc.5",
    "@angular/compiler": "5.0.0-rc.5",
    "@angular/core": "5.0.0-rc.5",
    "@angular/forms": "5.0.0-rc.5",
    "@angular/http": "5.0.0-rc.5",
    "@angular/platform-browser": "5.0.0-rc.5",
    "@angular/platform-browser-dynamic": "5.0.0-rc.5",
    "@angular/router": "5.0.0-rc.5",
    "core-js": "^2.4.1",
    "ng2-accordion": "0.0.15",
    "ngx-bootstrap": "^1.9.3",
    "ngx-popover": "0.0.16",
    "rxjs": "^5.5.2",
    "typescript": "2.4.2",
    "zone.js": "^0.8.14"
},
"devDependencies": {
    "@angular/cli": "^1.5.4",
    "@angular/compiler-cli": "5.0.0",
    "@angular/language-service": "5.0.0",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "~3.1.1",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.2",
    "ts-node": "~3.2.0",
    "tslint": "~5.3.2"
}
Run Code Online (Sandbox Code Playgroud)

我们还缺少什么?为什么即使在正确更新后我们仍然会收到此错误?

Gur*_*Rao 5

正如@Andriy 在他的评论中提到的

ngForms选择器是selector: 'form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]' -。因此,使用formGroup指令 onform将使其form成为NOT ngForm并且ngFormOptions在这种情况下不会产生任何影响。

或者,我们可以使用 `component 文件中的上述选项,如下所示:

this.testform = new FormGroup({
      testcontrol: new FormControl('', Validators.required)
}, {updateOn: 'submit'});
Run Code Online (Sandbox Code Playgroud)