【问题标题】:How to listen for child event from parent directive in Angular2如何在Angular2中从父指令监听子事件
【发布时间】:2016-06-13 03:46:14
【问题描述】:

我有一个由指令 'MyDirective' 包装的子组件 'my-component' ,我需要从子组件向父指令发出事件,我知道如何使用 @Output 为父组件执行此操作,但是指令没有运气。

<div myDirective >
    <my-component></my-component>
</div>

有什么想法吗?

【问题讨论】:

    标签: angular


    【解决方案1】:

    一种方法是使用模板变量并在事件处理程序中引用它:

    <div myDirective #mydir>
        <my-component (someEvent)="mydir.someMethod()"></my-component>
    </div>
    

    【讨论】:

    • 非常感谢这个解决方案,如果 myDirective 是结构指令,还有其他方法吗?
    • 嗯,我想我需要一个具体的例子。你能创建一个 Plunker 来展示你想要完成的事情吗?您还可以使用 dispatchEvent() 来触发 DOM 事件。 DOM 事件冒泡,您可以使用&lt;div myDirective (someEvent)="someMethod()"&gt; 收听它。给猫剥皮的方法通常有很多种;-) 这通常取决于细节,哪种方法更适合。
    • my-component 有两个方法,up() 和 down(),比如说如果有人点击了第 3 个 my-component,我想调用第 3 个 my-component 的 show() 并调用hide() 所有其他我的组件组件,通过 myDirective 指令。
    • &lt;my-component (click)="showIdx=3" [hidden]="showIdx!==3" 其他组件相同,但每个组件的编号不同。如果这不是您想要的,请使用更多代码将其添加到您的问题中,以使您尝试完成的工作显而易见。
    • 请将代码添加到您的问题中,以展示您尝试完成的任务。 “结构性指令”并不是我可以使用的真正信息。
    猜你喜欢
    • 2017-03-22
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 2016-10-07
    • 1970-01-01
    • 2017-02-21
    • 2018-10-21
    相关资源
    最近更新 更多