Angular 5 Child组件公开属性但不公开方法

时间:2018-08-09 16:02:58

标签: javascript angular

有什么主意,为什么我可以掌握所有子组件的属性,但不能掌握其任何方法?

我需要在子组件上调用一个方法(不使用服务或eventEmmiter)以验证其状态并返回属性。

父母

@Component({
    selector: 'page-login',
    templateUrl: 'login.html'
})
export class MyParent {
    @ViewChild('childEl') childEl: PhoneInputComponent;

    getChildValue() {
        const value = this.childEl.getMyValue();
        console.log(value);
        console.log(this.childEl);
    }
}

孩子

@Component({
    selector: 'phoneinput',
    templateUrl: 'phoneinput.html'
})
export class PhoneInputComponent {

    private onKey = new Subject<string>();
    @Input() phone: string;
    private errorMessage: string;

    getMyValue() {
        return 'hello from child';
    }
}

console.log值:

  

未定义

this.childEl的console.log:

  

PhoneInputComponent {onKey {}:Subject {},phone:null,errorMessage:null}

无法使用getValue()

1 个答案:

答案 0 :(得分:1)

修改您的代码

git reset HEAD~1

}

示例:https://stackblitz.com/edit/angular-v4qqtt