在angular中设置表单组控件时如何捕获异常?
How to catch the exception when set form group control in angular?
我有一个表单组。
@Input() readonly formBuilder: FormBuilder;
public myFormGroup :FormGroup;
this.myFormGroup = this.formBuilder.group({name: null});
然后在某个地方我想通过代码修补值。
try {
this.myFormControl.controls.name.setValue('some value');
} catch (e) {
console.error(e);
}
但是设置值失败。我的问题是我无法捕捉到错误。在调试中我发现它去了Subscriber.js
和方法
SafeSubscribe.prototype._tryOrUnsub = function(fn ,value) {
try {
fn.call(this._context, value); // hover it shows value = undefined
}
catch (err) {
this.unsubscribe();
throw err;
}
};
所以我还是不知道哪里出了问题。
尝试通过
更新
this.myFormControl.controls.get('name').setValue('some value');
其中 'name' 是表单控件的名称。
此外,在调试时,请在调用您认为会产生错误的代码之前添加 debugger;
一词。它将导致 chrome 停止执行并在 devtools 中调出一个 javascript 调试器。它可以帮助您诊断问题。
自己想办法
控件是一个kendo-datepicker
;它需要转换格式才能工作。
<kendo-datepicker [format]="'MM/dd/yyyy'" formControlName = "name"></kendo-datepicker>
和ts代码
this.myFormControl.controls.name.setValue(new Date('some value));
所以诀窍是添加 new Date()
.
但是我仍然不知道为什么我无法捕捉到错误。无论如何,目前它已经解决了。
我有一个表单组。
@Input() readonly formBuilder: FormBuilder;
public myFormGroup :FormGroup;
this.myFormGroup = this.formBuilder.group({name: null});
然后在某个地方我想通过代码修补值。
try {
this.myFormControl.controls.name.setValue('some value');
} catch (e) {
console.error(e);
}
但是设置值失败。我的问题是我无法捕捉到错误。在调试中我发现它去了Subscriber.js
和方法
SafeSubscribe.prototype._tryOrUnsub = function(fn ,value) {
try {
fn.call(this._context, value); // hover it shows value = undefined
}
catch (err) {
this.unsubscribe();
throw err;
}
};
所以我还是不知道哪里出了问题。
尝试通过
更新this.myFormControl.controls.get('name').setValue('some value');
其中 'name' 是表单控件的名称。
此外,在调试时,请在调用您认为会产生错误的代码之前添加 debugger;
一词。它将导致 chrome 停止执行并在 devtools 中调出一个 javascript 调试器。它可以帮助您诊断问题。
自己想办法
控件是一个kendo-datepicker
;它需要转换格式才能工作。
<kendo-datepicker [format]="'MM/dd/yyyy'" formControlName = "name"></kendo-datepicker>
和ts代码
this.myFormControl.controls.name.setValue(new Date('some value));
所以诀窍是添加 new Date()
.
但是我仍然不知道为什么我无法捕捉到错误。无论如何,目前它已经解决了。