【问题标题】:How to catch the exception when set form group control in angular?在角度设置表单组控件时如何捕获异常?
【发布时间】:2020-11-13 17:43:05
【问题描述】:

我有一个表单组。

@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;
  }
};

所以我还是不知道出了什么问题。

【问题讨论】:

    标签: javascript angular typescript angular5


    【解决方案1】:

    尝试通过更新

    this.myFormControl.controls.get('name').setValue('some value');
    

    “name”是表单控件的名称。

    此外,在调试方面,请在调用您认为会产生错误的代码之前添加单词debugger;。它将导致 chrome 停止执行并在 devtools 中打开一个 javascript 调试器。它可以帮助您诊断问题。

    【讨论】:

      【解决方案2】:

      自己想办法 控件是kendo-datepicker;它需要转换格式然后才能工作。

      <kendo-datepicker [format]="'MM/dd/yyyy'" formControlName = "name"></kendo-datepicker>
      

      还有ts代码

      this.myFormControl.controls.name.setValue(new Date('some value));
      

      所以诀窍是添加new Date()

      但为什么我无法捕捉到我仍然不知道的错误。目前,无论如何现在都可以解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-04
        • 2018-08-22
        • 2019-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-20
        • 2021-02-09
        相关资源
        最近更新 更多