8

名前グループを一番上に表示し、ドラッグイベントをキャンセルしたいです。このグループ名が一番上にある場合のように、一部の要素の移動を無効にするにはどうすればよいですか。私のコードは次のとおりです。

dragulaService.drag.subscribe((value) => {
    console.log(`drag: ${value[0]}`);
});

私のテンプレート:

<div class='wrapper'>
  <div class='container' *ngFor='let group of groups' [dragula]='"nested-bag"'>
     <div class="center-block">Table Number : {{group.name}}</div>
    <div *ngFor='let item of group.items' [innerHtml]='item.name'></div>
  </div>
</div>
4

5 に答える 5

14

解答を見つける:

  dragulaService.setOptions('nested-bag', {
      revertOnSpill: true,
      moves: function (el:any, container:any, handle:any):any {
        debugger
        console.log(el, container);
        return false;
      }
    });
于 2016-12-14T09:54:12.177 に答える
4

特定のクラスの要素のドラッグを無効にするには:

dragulaService.setOptions('PUT_CONTAINER_NAME_HERE', {
    moves: function (el: any, container: any, handle: any): any {
        if (el.classList.contains('PUT_YOUR_CLASS_HERE')) {
            return false;
        }

        return true;
    }
});
于 2018-01-15T09:37:19.330 に答える
0

これが代替案です。invalidの代わりに使用できますmovesドキュメントから取得:

署名invalid付きのメソッドを提供できます。(el, handle)このメソッドはtrue、ドラッグをトリガーしてはならない要素に対して返される必要があります。handle引数はクリックされた要素で、 は ドラッグelされるアイテムです。これは、ドラッグを妨げないデフォルトの実装です。

function invalidTarget (el, handle) {
  return false;
}

クリックされた DOM 要素と、コンテナーinvalidのすべての親から直接の子までで呼び出されることに注意してください。drake

于 2019-05-13T07:28:22.173 に答える