2016-03-24 15 views
1

私はdragDirectiveを作成しています。 EementsはdragZoneでドラッグされます。マウスのリリースでは、すべてのavailabe dragZoneに対してhitTestを実行します。私はすべてのhittestsがfalseを返す場合は、偽に終わる静的ブール値フラグを維持しています。このような状況では、元々それが属していたdragZoneに要素を配置したいと思います。変数値のこの変更をチェックするにはどうすればよいですか?ANGULAR2:クラスの静的変数の変化を検出する

this._messageBus.listen("dragStart", (obj, event) => { 
     DragZoneDirective.HITTEST = false; 
    }); 
    this._messageBus.listen("dragStop", (obj, event) => { 
     if (this.hitTest(event.x, event.y)) 
     { 
      //clone object 
      let clone: Object = JSON.parse(JSON.stringify(obj)); 
      this.dragZoneElems.push(clone); 
      DragZoneDirective.HITTEST = true; 
     } 

     let index = this.dragZoneElems.indexOf(obj); 
     if (index > -1) 
      this.dragZoneElems.splice(index, 1); 
    }); 

答えて

0

静的フィールドで角度変化検出によって確認された角度結合は使用できません。

その静的フィールドに転送するコンポーネントにゲッターを追加し、そのゲッターへのバインディングを角度の変更の検出で確認できます。

IMHO好ましい方法は、変更時にイベントを発行するObservableを使用することです。関心のあるコードは、購読することができ、更新についての通知を受けることができます。

関連する問題