首页 文章

获取父组件中子组件的引用[重复]

提问于
浏览
32

这个问题在这里已有答案:

在Angular 2中,我有一个包含子组件的组件 . 但是,我想获取要在父级中使用的子组件的副本,以调用其函数或其他任何内容 .

我发现我可以使用局部变量,这样我就可以在模板中使用该组件 . 但是,我不要只在模板中使用它,我想在组件的实际代码中使用它 .

我找到了一种方法,这里是子代码:

//our child
import {Component, OnInit, EventEmitter} from 'angular2/core'

@Component({
  selector: 'my-child',
  providers: [],
  template: `
    <div>
      <h2>Child</h2>

    </div>
  `,
  directives: [],
  outputs: ['onInitialized']
})

export class Child implements OnInit{

  onInitialized = new EventEmitter<Child>();

  constructor() {
    this.name = 'Angular2'
  }

  ngOnInit() {
    this.onInitialized.emit(this);
  }
}

家长:

//our root app component
import {Component} from 'angular2/core'
import {Child} from './child'

@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <div>
      <h2>Hello {{name}}</h2>
      <my-child (onInitialized)="func($event)"></my-child>
    </div>
  `,
  directives: [Child]
})
export class App {
  constructor() {
    this.name = 'Angular2'
  }

  func(e) {
    console.log(e)

  }
}

我在这个plunker中实现了它:http://plnkr.co/edit/e3pEn9Hd54q1mijNGDpR?p=preview

但它似乎是一个黑客,是不是有一个更简单的方法将组件附加到其父变量?

3 回答

相关问题