小编Ash*_*ngh的帖子

Angular 6,this.formGroup.updateValueAndValidity() 无法正常工作

我正在尝试formGroup根据特定条件在控件中添加和删​​除验证器。

当我更新formGroup.updateValueAndValidity()整个表单的验证器时,它没有更新,好像我专门申请每个控件,即formGroup.get('formControl').updateValueAndValidity(),它正在工作,但我必须为每个控件编写,我希望这不是正确的方法。我究竟做错了什么?

if (data == 'x') {
    this.myForm.get('control2').setValue(null);
    this.myForm.get('control2').setValidators(Validators.nullValidator);
    this.myForm.get('control1').setValidators(Validators.required);
} else if (data == 'y') {
    this.myForm.get('control1').setValue(null);
    this.myForm.get('control1').setValidators(Validators.nullValidator);
    this.myForm.get('control2').setValidators(Validators.required);
}
this.myForm.get('control1').updateValueAndValidity();
this.myForm.get('control2').updateValueAndValidity();
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是,

this.myForm.updateValueAndValidity();
Run Code Online (Sandbox Code Playgroud)

这是行不通的。

typescript form-control angular formgroups angular-validator

8
推荐指数
3
解决办法
1万
查看次数

Chrome Headless 83.0.4103.116 (Linux x86_64) 错误已断开连接,因为 30000 毫秒内没有消息,Angular 8

我有 746 个测试用例,但是当我尝试使用以下命令运行测试用例时:

"ng test --browsers='CustomChromeHeadless' --code-coverage=true --watch=false --source-map=false",
Run Code Online (Sandbox Code Playgroud)

在执行一些随机数量的测试用例后,它给出如下错误。

Chrome Headless 83.0.4103.116 (Linux x86_64) ERROR
  Disconnected, because no message in 30000 ms.
Run Code Online (Sandbox Code Playgroud)

包.json

"karma": "^5.1.0",
"karma-chrome-launcher": "^3.1.0",
"karma-cli": "^2.0.0",
"karma-coverage": "^2.0.2",
"karma-coverage-istanbul-reporter": "^3.0.3",
"karma-jasmine": "^3.3.1",
"karma-jasmine-html-reporter": "^1.5.4",
"karma-junit-reporter": "^1.2.0",
Run Code Online (Sandbox Code Playgroud)

业力配置文件

// Karma configuration file, see link for more information
// https://karma-runner.github.io/0.13/config/configuration-file.html

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular-devkit/build-angular'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-junit-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('karma-junit-reporter'),
      require('@angular-devkit/build-angular/plugins/karma'),
    ],
    client: {
      clearContext: false, // leave Jasmine …
Run Code Online (Sandbox Code Playgroud)

unit-testing jasmine karma-jasmine karma-coverage angular

5
推荐指数
0
解决办法
397
查看次数