При добавлении FormControl в FormGroup внутри моей собственной библиотеки formGroup.getRawValue () выдает ошибку.
import {
Component,
OnInit
} from '@angular/core';
import {
FormBuilder,
FormGroup
} from '@angular/forms';
import {testfunc} from 'test-lib'; // import a function from my own library.
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit{
constructor(
private formBuilder: FormBuilder,
) {
}
ngOnInit() {
const jsonA = {
a: 'test',
b: 10,
};
const fg = this.formBuilder.group(jsonA);
testfunc(fg); // Add a Form Control inside this function
const jsonB = fg.getRawValue(); // 'control.getRawValue is not a function' error
}
}
test-lib
- это сборка проекта библиотеки Angular, например этот пост . И код для testfunc
следующий.
import {
FormControl,
FormGroup
} from '@angular/forms';
export function testfunc(fg: FormGroup) {
fg.addControl('c', new FormControl('newcontrol'));
}
fg.getRawValue()
вызывает ошибку, как показано ниже.
ERROR TypeError: control.getRawValue is not a function
at forms.js:5460
at forms.js:5582
at forms.js:5508
at Array.forEach (<anonymous>)
at FormGroup._forEachChild (forms.js:5504)
at FormGroup._reduceChildren (forms.js:5576)
at FormGroup.getRawValue (forms.js:5453)
at AppComponent.ngOnInit (app.component.ts:34)
:
Когда testfunc
находится в одном проекте с AppComponent
, Я не вижу этой ошибки. Но когда функция находится во внешней библиотеке, я получил эту ошибку.
Почему я получил эту ошибку, когда testfunc
находится во внешней библиотеке?
Angular версия 9.1. 11.