从Directive到Parent元素发出事件

时间:2016-06-22 08:36:27

标签: html angular angular-directive dom-events

我在HTML模板中有一个元素。我给它添加了一个指令:

<div myCustomDirective>HELLO</div>

我希望每当我将鼠标悬停在div上时,div内的文字都应该更改,但需要在Directive (mouseover)事件中完成。

我不知道如何从Directive发出事件并在父元素内捕获。

感谢任何帮助。这是angular2项目。

2 个答案:

答案 0 :(得分:41)

如果ui.tableWidget->horizontalHeaderItem(2)->setText("Area \n [m" + str + "]"); 的输出为myCustomDirective,则可以使用

@Output() someEvent:EventEmitter = new EventEmitter();

答案 1 :(得分:7)

我想添加@GünterZöchbauer的答案,如果您尝试从结构指令发出事件并在应用指令时使用星号(*)语法,它不会起作用。如果与<ng-template [customDirective]="foo" (customDirectiveEvent)="handler($event)"> <div class="name">{{hero.name}}</div> </ng-template> 语法一起使用,Angular 5.2.6仍然不支持结构指令的<div *customDirective="foo" (customDirectiveEvent)="handler($event)" class="name">{{hero.name}}</div> 绑定(参见GitHub issue)。

你必须将它转换为去糖形式(see here),即:

{{1}}

而不是:

{{1}}