我目前正在尝试编写一个树控件,并且我有以下自定义属性(可拖动和可放置): 可拖动如下:
@customAttribute('draggable')
@inject(Element)
export class Draggable {
constructor(element) {
this.element = element;
}
valueChanged(newValue){
var el = this.element;
el.draggable = true;
el.addEventListener('dragstart', function(e) {
e.dataTransfer.effectAllowed = 'move';
// etc.
if (e.stopPropagation)
e.stopPropagation();
return false;
}, false);
el.addEventListener('dragend', function (e) {
this.classList.remove('drag');
return false;
}, false);
}
}
等等。从 droppable 属性中,我正在考虑一种 pub/sub 机制,其中视图模型将拾取 drop 并将数据添加到树数组中。
这是在 aurelia 中执行此操作的最佳方法还是我可以遵循其他一些技术?我想在 angularjs 中我会这样做或通过树的根范围。
我有哪些选择?