Angular 2 @Output参数

时间:2016-01-21 07:39:13

标签: angular

我试图通过@Output传递参数但是被激活的函数只是接收到了#undefined'。有人可以告诉我通过@Output的EventEmitter传递参数的方法吗?例如:

var childCmp = ng.core.Component({
             selector:'child-cmp',
             outputs: ['myEvent']
             }).Class({
               constructor: function(){
                            this.myEvent = new ng.core.EventEmitter();
                            this.myEvent.emit(false);
                            }
             });
var parentCmp = ng.core.Component({
              selector:'parent-cmp',
              template:'<child-cmp (myEvent)="invoke()"'></child-cmp>',
              directives: [childCmp]
           }).Class({
                constructor:function(){},
                invoke: function(flag){
                    // here flag is undefined!!
                }
             });

2 个答案:

答案 0 :(得分:7)

您应该使用以下内容来获取事件提供的值:

<child-cmp (myEvent)="invoke($event)"'></child-cmp>'

这样,您invoke的{​​{1}}方法会在发出childCmp自定义事件时获得您提供的值作为参数。

希望它可以帮到你, 亨利

答案 1 :(得分:5)

Thierry的回答几乎是正确的,您需要在输出函数中传递 $ event

<child-cmp (myEvent)="invoke($event)"'></child-cmp>'