2016-01-21 4 views
7

Imは@Outputを介してパラメータを渡そうとしていますが、起動された関数は単に 'undefined'を受け取ります。誰かが@OutputのEventEmitterを通してパラメータを渡す方法を教えてもらえますか?たとえば、次のように角2 @Outputパラメータ

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!! 
       } 
      }); 
+1

はあなたには、いくつかのコードを共有することはできますか? EventEmitter.emitを呼び出すと何が送信されますか? – Shikloshi

+0

https://angular.io/docs/ts/latest/api/core/Output-var.html –

+1

私の質問の例を追加 –

答えて

6

あなたがイベントで提供された値を取得するには、次の使用shoud:

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

あなたchildCmpinvoke方法は、パラメータとして発光時に指定した値を受け取ることになります。この方法myEventカスタムイベント。

は、あなたが出力機能で $イベントを渡す必要があり ティエリー

+2

$ event.valueは機能しませんでしたが、$ eventは機能しました!ありがとうございました!!!! –

+1

それは** $イベント**確かに – tibbus

5

ティエリーの答えは、ほぼ正しいか、それはあなたのお役に立てば幸いです:

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

将来的にはおそらくちょうど答えを編集する必要があります – adamdport

+0

確かに、私はその時を知りませんでした1年前¯\ _(ツ)_ /¯ – tibbus

関連する問題