2016-09-07 8 views
-1
class MyController{ 

    public myEntities = ko.observableArray(); 

    constructor(modelData) { 
      var me = this; 
      me.onViewLoaded.addEventListener(() => { 
       me.myEntities.push(modelData); 
      }); 
    } 

私はこの行の意味を知らない。addEventListener()の意味は?

me.onViewLoaded.addEventListener(() => {me.myEntities.push(modelData);} 

私のビューがロードされるたびに、それは意味ですか?データをmyEntitiesにプッシュしますか?

+0

あなた自身で投稿したコードは意味がありません。つまり、その目的や動作に*推測することはできますが、欠落しているものがたくさんあります。最も重要なのは、 'onViewLoaded'がどこから来ているのか、そして/または何であるかです。詳細については、[[mcve]]のガイダンスを確認してください。 – Jeroen

答えて

0

Welcome to Stackoverflow!ここで

はMDNのドキュメントからの引用です:

EventTarget.addEventListener()メソッドは、それが上と呼ばれていますのEventTarget上の指定されたリスナー を登録します。イベントターゲットは、ドキュメント内の要素 、ドキュメント自体、ウィンドウ、または がサポートするその他のオブジェクト(XMLHttpRequestなど)です。 このソースから詳細を確認するには、GoogleのJavaScript MDNリファレンスをご覧ください。

だから.addEventListenerは "メソッド"の例です。つまり、EventTargetオブジェクト(この場合はme.onViewLoaded)にアタッチすると、そのオブジェクトに対してアクションが実行されます。ここでのアクションは、「リスナー」を追加することです(メソッドの名前が意味するように)。では、イベントリスナーとは何ですか?

リスナーは、クリックや特定の機能など、何らかのアクションが発生するのを待ち受けます。あなたのコードのように見えますが、アクションはmodelDataがmyEntitiesオブジェクトにプッシュされる関数です。したがって、偶数のリスナーは、データセットmodelDataをmyEntitiesオブジェクトにプッシュするのを待っています。お役に立てれば!もしそうなら、私の答えの横の灰色のチェックをクリックしてください。そうでない場合は、私にコメントでお知らせください!