유효성 검증에 사용하는 양식의 등록 취소 변경 사항에 문제점이 있습니다. 정확한 방법으로 끄고 싶은 내 방법 :Angular2 unsubscribe valueChanges on formGroup
this.taskForm.valueChanges.subscribe(data => {
...
this.output = data;
});
제출 후이 청취자를 삭제하고 싶습니다. 어떻게해야합니까? unsubscribe
을 사용하려고했지만 도움이되지 않습니다. 다음은 내 시도입니다 :
this.sub = this.taskCreate.valueChanges.subscribe(data => {
...
this.output = data;
});
나는 this.sub.unsubscribe();
을 추가하려고하지만, 도움이되지 않았다.
onSubmit(form: FormGroup) {
let context: number = 0;
if(form.valid) {
this.appService.addTask(form.value)
.then(result => {
this.lgModal.hide();
this.taskCreate.reset({ priority: '' });
this.cartBox.cart = [];
this.cartBox.showCart = false;
this.createTaskDone.emit();
this.attachments.attachmentList = [];
this.uploader.clearQueue();
this.reloadContent.emit(context);
this.counter += 1;
console.log("COUNTER: ", this.counter);
})}
else {
this.formValidator(form);
}
}
formValidator(form:FormGroup) {
if(!form.controls['goal'].valid) this.formValid.goalErr = 1; else this.formValid.goalErr = 0;
if(!form.controls['priority'].valid) this.formValid.priorityErr = 1; else this.formValid.priorityErr = 0;
if(!form.controls['note'].valid) this.formValid.noteErr = 1; else this.formValid.noteErr = 0;
this.taskCreate.valueChanges.subscribe(data => {
this.formValidator(form);
this.output = data;
});
}
문제는 다른 곳에서 발생해야합니다. 'unsubscribe()'는 이런 방식으로 작동합니다. 당신이 제기 한 코드 주위에 더 많은 컨텍스트를 제공 할 수 있습니까? 이 코드는 어디에서 어떻게 호출됩니까? –
안녕하세요 건터! 설명에 더 많은 정보가 추가되었습니다. 정확하게 사용자가 유효하지 않은 양식을 제출할 때 Validator를 호출합니다. 이 Validator는 모든 양식 필드를보고 변경 사항을 감지하는 valueChanges subscribent를 실행하며, field가 유효하지 않은 경우 유효성 검증 정보가있는 레이블을 표시합니다. 처음 실행하면 괜찮습니다.하지만 다음 양식을 보내려면 힘들 것입니다. 이 경우 valueChanges는 사용자가 잘못된 양식을 보내려는 경우가 아니라 양식이 열리기 때문에 작동합니다. –
그 코드에는 아무 것도 없습니다 : 1. "구독 취소"를 시도한 곳; 또는 2. 정확하게 "* 도움이되지 않습니다"*라는 의미입니다. – jonrsharpe