ANGULAR2:检测类的静态变量的变化

时间:2016-03-24 15:02:07

标签: angularjs typescript angular

我正在写一个dragDirective。 Eements在dragZones中被拖动。在鼠标释放时,我对所有可用的dragZones执行hitTest。我正在维护一个静态布尔标志,如果所有的hittests都返回false,则该标志最终为false。在这种情况下,我想重新定位它最初属于的dragZone中的元素。如何检查变量值中的此更改?

    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);
    });

1 个答案:

答案 0 :(得分:0)

您不能使用由静态字段上的角度变化检测检查的角度绑定。

您可以在转发到该静态字段的组件上添加一个getter,然后通过Angulars更改检测来检查对该getter的绑定。

恕我直言,首选方法是使用Observable发出更改时的事件。感兴趣的代码可以订阅并获得有关更新的通知。