我正在写一个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);
});
答案 0 :(得分:0)
您不能使用由静态字段上的角度变化检测检查的角度绑定。
您可以在转发到该静态字段的组件上添加一个getter,然后通过Angulars更改检测来检查对该getter的绑定。
恕我直言,首选方法是使用Observable
发出更改时的事件。感兴趣的代码可以订阅并获得有关更新的通知。