Не удается прочитать свойство 'setValue' из неопределенного | Angular - PullRequest
0 голосов
/ 16 марта 2020

У меня проблема с моим HTML компонентом, по какой-то причине мой метод отображает ошибку: Не удается прочитать свойство 'setValue' из неопределенного , когда я нажимаю кнопку редактирования, однако все кажется чтобы быть в порядке.

Это мой HTML

<div *ngFor="let item of currentUser.myExperiences" class="mt-3">
        <div>
          <h6>{{item.companyName}} <span *ngIf="item.currentlyWorking" class="badge badge-warning">Currently
              working</span>
              <span class="float-right">
                <a class="text-warning cursor" (click)="openEditModal(item)"><i class="fas fa-pencil-alt"></i></a>
              </span>
            </h6>
          <p class="text-muted p-text-sm">{{item.functions}}</p>
          <p class="text-muted p-text-sm" *ngIf="item.references">
            <strong>References:</strong>
            {{item.references}}
          </p>
          <hr>
        </div>
      </div>

<form role="form" [formGroup]="updateForm">
        <div class="form-group">
          <label for="functions">Funtions</label>
          <input type="text" class="form-control" id="functions" name="functions" formControlName="functions" aria-describedby="emailHelp">
        </div>
        <div class="form-group">
          <label for="exampleInputPassword1">Password</label>
          <input type="password" class="form-control" id="exampleInputPassword1">
        </div>
        <button type="submit" class="btn btn-primary">Submit</button>
      </form>

Это мой компонент TS:

public openEditModal(myExperience: IMyExperience): void {
console.log(myExperience);
// Set values to controls
console.log(myExperience.id);
this.experienceId.setValue(myExperience.id);
this.companyName.setValue(myExperience.companyName);
this.functions.setValue(myExperience.functions);
this.workedYears.setValue(myExperience.workedYears);
this.references.setValue(myExperience.references);
this.currentlyWorking.setValue(myExperience.currentlyWorking);

this.updateForm.setValue({
  experienceId: this.experienceId.value,
  companyName: this.companyName.value,
  functions: this.functions.value,
  workedYears: this.workedYears.value,
  references: this.references.value,
  currentlyWorking: this.currentlyWorking.value
});

// Open the modal
this.modalRef = this.modalService.show(
  this.editModal,
  Object.assign({}, { class: 'gray modal-lg' })
);}

Я пытался отобразить в консоли объект, но это работает отлично, однако я не уверен, почему это происходит.

Я использую средства распознавания для правильной передачи информации от маршрута к компоненту.

Заранее спасибо.

1 Ответ

0 голосов
/ 16 марта 2020

Попробуйте использовать this.updateForm.patchValue вместо this.updateForm.setValue .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...