У меня проблема, я пытаюсь разработать кнопку редактирования для formGroup, которая сначала сохраняется, но когда вы нажимаете кнопку рядом с ней, откроется модальное окно с теми же данными, вы можете его отредактировать.
Но я получаю эту ошибку и не могу ее решить. Надеюсь, кто-то здесь может мне помочь.
ОШИБКА TypeError: невозможно прочитать свойство startDate из undefined
Ps: код, вероятно, не будет работать как фрагмент, но это был лучший способ разместить здесь свой код.
import { Component, OnInit } from '@angular/core';
import {FormBuilder, FormGroup} from "@angular/forms";
@Component({
selector: 'app-project-information-detail-edit',
templateUrl: './project-information-detail-edit.component.html',
})
export class ProjectInformationDetailEditComponent implements OnInit {
detailForm : FormGroup;
constructor(private fb: FormBuilder) { }
ngOnInit() {
this.detailForm = this.fb.group({
name: [''],
phone: [''],
startDate: [''],
email: [''],
});
}
}
<form [formGroup] = "detailForm">
<div class = "col-sm-6">
<h1><span class = "semi-bold">{{selectedProject.name}}</span>
<br>
<small *ngIf = "selectedProject.startDate">
{{selectedProject.startDate}}
</small>
<ng-template #noStartdate>
<span>Nicht gesetzt</span>
</ng-template>
</h1>
<ul class = "list-unstyled">
<li>
<p class = "text-muted">
<i class = "fa fa-phone"></i>  
<span *ngIf = "selectedProject.phone">
<a href = "tel:{{selectedProject.phone}}">{{selectedProject.phone}}</a>
</span>
<ng-template #noPhoneTemplate>
<span>Nicht verfügbar</span>
</ng-template>
</p>
</li>
<li>
<p class = "text-muted">
<i class = "fa fa-envelope"></i>  
<a *ngIf = "selectedProject.email"
href = "mailto:{{selectedProject.email}}">{{selectedProject.email}}</a>
<ng-template #noPhoneTemplate>
<span>Nicht verfügbar</span>
</ng-template>
</p>
</li>
</ul>
</div>
</form>
ERROR TypeError: Cannot read property 'startDate' of undefined
at Object.eval [as updateDirectives] (ProjectInformationDetailEditComponent.html:9)
at Object.debugUpdateDirectives [as updateDirectives] (core.js:14655)
at checkAndUpdateView (core.js:13802)
at callViewAction (core.js:14153)
at execComponentViewsAction (core.js:14085)
at checkAndUpdateView (core.js:13808)
at callWithDebugContext (core.js:15056)
at Object.debugCheckAndUpdateView [as checkAndUpdateView] (core.js:14593)
at ViewRef_.detectChanges (core.js:11577)
at eval (core.js:5907)
введите код сюда
Хотя вы не определили selectedProject
, и я предполагаю, что вы забыли добавить его в свой пример кода (иначе сначала у вас должна была бы появиться ошибка на name
)
изменить эту строку
<small *ngIf = "selectedProject.startDate">
к
<small *ngIf = "selectedProject?.startDate">
или
<small *ngIf = "selectedProject && selectedProject.startDate">
selectedProject - это информация о данных, на которую мы смотрим, у нас есть разные типы проектов