我有两个组件:ComponentOne
和ComponentTwo
。
@NgComponent(...)
class ComponentOne {
}
<div>
<h1>Component One</h2>
<content></content>
<div>
@NgComponent(...)
class ComponentTwo {
}
<div>
<h1>Component Two</h2>
<div>
然后,我有以下标记:
<component-one>
<component-two></component-two>
</component-one>
如何从
ComponentTwo
引用ComponentOne
。更具体地说,我有一个处理click事件的方法,需要将click事件委托(delegate)给它的 child 。哪种方法最好? 最佳答案
我将ComponentOne
注入(inject)ComponentTwo
,并在ComponentTwo
的构造函数中将ComponentTwo
分配给ComponentOne
。
ComponentTwo(ComponentOne c1) {
c1.componentTwo = this;
}
您还可以创建一个仅执行此操作的指令,以避免ComponentTwo与ComponentOne紧密耦合。
AssignComponentTwoDirective(ComponentOne c1, ComponentTwo c2) {
c1.componentTwo = c2;
}
也许有更好的方法,但是我还没有看到。
您必须将
visibility
的ComponentOne
设置为子级。@NgComponent(
selector: 'component-one',
visibility: NgDirective.CHILDREN_VISIBILITY,
...)
class ComponentOne ...
另请参阅angular 2 / typescript : get hold of an element in the template
关于dart - 如何在AngularDart中从其父级引用子级组件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21754244/