订阅表单字段的特定列表,并在1发生更改时访问其所有值

时间:2018-08-10 03:05:08

标签: angular ngrx

我有一个使用ngrx的Angular应用程序,并且有一组表单字段。我需要订阅所有这些内容,以便在它们更改时可以执行操作。我需要及时了解所有特定领域的错误。

//订阅列表中每个字段的状态更改

for (const field of this.fields) {
    this.form.controls[field.id].statusChanges
         .subscribe((status) => {
              // Accessing field.id from here seems to work but I don't understand why
              const thisFieldErrors = this.form.controls[field.id].errors;
              // Other fields' errors??
         });

}

我曾经考虑过使用withLatestFrom,但是我不知道如何传递每个字段状态的订阅列表。

2 个答案:

答案 0 :(得分:1)

我想您需要的是:

/* Define css class for global loading message to cover 
   screen during axios operations */

.loading-indicator:before {
    content: '';
    background: #000000cc;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1000;
}

.loading-indicator:after {
    content: 'Loading';
    position: fixed;
    width: 100%;
    top: 50%;
    left: 0;
    z-index: 1001;
    color:white;
    text-align:center;
    font-weight:bold;
    font-size:1.5rem;        
}

答案 1 :(得分:0)

我要做的就是遍历表单控件...

for (const field of this.fields) {
    this.form.controls[field.id].statusChanges
        .subscribe((status) => {    
            for (const fieldKey in this.form.controls) {
                if (this.form.controls.hasOwnProperty(fieldKey)) {
                    console.log(this.form.controls[fieldKey].errors);
                }
            }
        });

}