Angular 4在子组件中调用父方法

标签 angular

我想在 Angular 4 的子组件中调用父方法 (deletePhone)。 我怎样才能正确地做到这一点?

我的父组件看起来像:

export class ContactInfo implements OnInit {
    phoneForm: FormGroup;
    phones: Phone[];


    constructor(private fb: FormBuilder,
            private userService: UserService) {
    }

    ngOnInit() {
        this.userService.getDataPhones().subscribe(
            phones => {
                this.phones = phones;
            });

        this.phoneForm = this.fb.group({
            phone: ['', [Validators.pattern(PHONE_PATTERN)]]
        });
    }

    deletePhone(phone: Phone) {
        this.userService.deleteUserPhone(phone)
            .subscribe(res => {
                let index = this.phones.indexOf(phone);
                if (index > -1) {
                    this.phones.splice(index, 1);
                }
        });
    }
}

最佳答案

import { Output, EventEmitter } from '@angular/core'; 

...

class ChildComponent {
  @Output() someEvent = new EventEmitter<string>();

  callParent(): void {
    this.someEvent.next('somePhone');
  }
}

ContactInfo的模板中

<child-component (someEvent)="deletePhone($event)"

关于Angular 4在子组件中调用父方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43323272/

相关文章:

angular - d.ts 文件中的 Typescript megring 命名空间

angular - 在组件模板中使用服务数据 - 这是一个好的实践吗?

javascript - 实现自定义验证器来 trim Angular 2 中的输入字段?

angular - 如何在angular universal中使用localStorage?

javascript - 在产品模式下构建时如何以 Angular 显示 package.json 中的版本

Angular 4 Material DatePicker 未在正确位置打开

angular - 属性 'value' 在primeng 表上的类型 'FilterMetadata' 上不存在

Angular 7 自动刷新不记名 token

angular - 在 Angular 中同时处理多个下拉按钮打开

angular - *ngFor in angular2+ 不显示任何数据