[英]Angular 4 : FormArray gives “ERROR TypeError: Cannot read property 'id' of undefined”
[英]Angular 6 gives error“TypeError: Cannot read property” when calling a property from another component while using modal
我是新手,所以当我尝试从组件B调用组件A的当前值时,如果我犯了愚蠢的错误,我深表歉意。 我试图在弹出模式形式处于活动状态时调用这些值。 在打开的弹出窗口上单击时,我试图调用函数“ editUserData()”,但它给出了错误。
成分A
import { Component, OnInit } from '@angular/core';
import { NgForm } from '@angular/forms';
import { userRegistrationData } from
'src/app/models/registrationUser.models';
import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs';
import { EditUserDetailComponent } from '../editUser/edit-user-detail/edit-
user-detail.component';
@Component({
selector: 'app-registration-form',
templateUrl: './registration-form.component.html',
styleUrls: ['./registration-form.component.css']
})
export class RegistrationFormComponent implements OnInit {
constructor(private httpClient: HttpClient ) { }
public currentValue: string;
editUserData(value:any): void
{
this.currentValue = value;
}
}
成分B
import { Component, OnInit,ViewChild, ViewChildren, AfterViewInit,
ElementRef, HostListener, Input, Injectable, AfterViewChecked,
AfterContentInit, ContentChild } from '@angular/core';
import {ModalDirective} from 'mdbootstrap';
import { userRegistrationData } from
'src/app/models/registrationUser.models';
import { NgForm } from '@angular/forms';
import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs/operators';
import { RegistrationFormComponent } from '../../registration-
form/registration-form.component';
@Component({
selector: 'app-edit-user-detail',
templateUrl: './edit-user-detail.component.html',
styleUrls: ['./edit-user-detail.component.css']
})
export class EditUserDetailComponent implements OnInit , AfterViewInit {
public editThisDetail: userRegistrationData;
value : string;
constructor(private httpClient: HttpClient, ){}
@ViewChild('RegistrationFormComponent') registrationFormComponent:
RegistrationFormComponent;
@ContentChild(RegistrationFormComponent)
public registraionComponent : RegistrationFormComponent;
pushData()
{
console.log("asif");
console.log("asif",this.registraionComponent.currentValue);
}
ngAfterViewInit()
{
this.pushData();
}
ngOnInit() {
}
}
错误在代码中:RegistrationFormComponent.html:81错误TypeError:无法读取EditUserDetailComponent.push ../ src / app / createUser / editUser / edit-user-detail / edit-user-detail.component.ts中未定义的属性“ currentValue” .EditUserDetailComponent.pushData(edit-user-detail.component.ts:50)位于EditUserDetailComponent.push ../ src / app / createUser / editUser / edit-user-detail / edit-user-detail.component.ts.EditUserDetailComponent。 ngAfterViewInit
如果您是EditUserDetailComponent
子级,而RegistrationFormComponent
是父级,则可以通过DI进行以下访问-
constructor(private httpClient: HttpClient,
@Inject(forwardRef(() => RegistrationFormComponent)) private registraionComponent:RegistrationFormComponent){
}
@ViewChild('RegistrationFormComponent') registrationFormComponent:
RegistrationFormComponent;
@ContentChild(RegistrationFormComponent)
public registraionComponent : RegistrationFormComponent;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.