2016-04-27 20 views
1

ここでは、ES5を使用して角度2で出力を示すコード例を示します。しかし、TypeError: Cannot read property 'subscribe' of undefinedというエラーが発生します。Angular2出力はES5で出力されますか?

var SampleComponent10 = ng.core.Component({ 
    selector: "sampleten", 
    outputs: ["click"], 
    template: "" 
}).Class({ 
    constructor: function(){ 
     setInterval(function(){ 
      this.click.next({}); 
     }.bind(this), 10000) 
    } 
}) 

var SampleComponent11 = ng.core.Component({ 
    selector: "sampleeleven", 
    directives: [SampleComponent10], 
    template: "<sampleten (click)='clicked($event)'></sampleten>" 
}).Class({ 
    constructor: function(){ 
     this.clicked = function(e){ 
      console.log(e); 
      console.log("Clicked"); 
     } 
    } 
}) 

SampleComponent11のテンプレートに何らかのエラーがあるようです。しかし、私はあなたがこのようなあなたのコードを変更する必要があり

答えて

1

それをキャッチすることはできませんよ。

var SampleComponent10 = ng.core.Component({ 
    selector: "sampleten", 
    outputs: ["click"], 
    template: "" 
}).Class({ 
    constructor: function(){ 
     this.click = new ng.core.EventEmitter(); <== add this line 
     setInterval(function(){ 
      this.click.next({}); 
     }.bind(this), 10000) 
    } 
}) 

https://angular.io/docs/ts/latest/cookbook/ts-to-js.html#!#property-metadata

+0

を参照してくださいしかし、なぜ 'outputs'プロパティが機能していません。なぜそれをEventEmitterの新しいインスタンスに手動で割り当てる必要があるのですか? –

+0

クラスコンポーネントのプロパティクリックが定義されていないためです。 – yurzui

+0

この行はエラー – yurzui

関連する問題