Angular 5 - 无法绑定到 'ngFormOptions',因为它不是 'form' 的已知 属性
Angular 5 - Can't bind to 'ngFormOptions' since it isn't a known property of 'form'
我们最近刚刚将我们的应用程序 Angular 版本更新到 v5
,并且作为新更新表单的一部分,支持 ngFormOptions
为某些事件配置 form elements
的验证。以下是我们所做的:
<form class="example-form" autocomplete="off" [ngFormOptions]="{updateOn:'submit'}" [formGroup]="testform">
</form>
但是它抛出了以下错误
Can't bind to 'ngFormOptions' since it isn't a known property of
'form'
更新后低于应用程序的依赖项。
package.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"
}
我们还缺少什么?为什么在正确更新后我们仍然收到此错误?
正如@Andriy 在评论中提到的那样
ngForms
selector is selector: 'form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]'
- source . Thus, using formGroup
directive on form
will make this form
as NOT ngForm
and ngFormOptions
will have no affect in this case.
或者,我们可以在组件文件中使用上述选项,如下所示:
this.testform = new FormGroup({
testcontrol: new FormControl('', Validators.required)
}, {updateOn: 'submit'});
我们最近刚刚将我们的应用程序 Angular 版本更新到 v5
,并且作为新更新表单的一部分,支持 ngFormOptions
为某些事件配置 form elements
的验证。以下是我们所做的:
<form class="example-form" autocomplete="off" [ngFormOptions]="{updateOn:'submit'}" [formGroup]="testform">
</form>
但是它抛出了以下错误
Can't bind to 'ngFormOptions' since it isn't a known property of 'form'
更新后低于应用程序的依赖项。
package.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"
}
我们还缺少什么?为什么在正确更新后我们仍然收到此错误?
正如@Andriy 在评论中提到的那样
ngForms
selector isselector: 'form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]'
- source . Thus, usingformGroup
directive onform
will make thisform
as NOTngForm
andngFormOptions
will have no affect in this case.
或者,我们可以在组件文件中使用上述选项,如下所示:
this.testform = new FormGroup({
testcontrol: new FormControl('', Validators.required)
}, {updateOn: 'submit'});