ここでは angular-drag-and-drop-lists パッケージを使用して、ドラッグ アンド ドロップ リストを作成しています。ただし、ドラッグされている要素は常に消えます。すべてのデモで、マウスで要素を移動すると、ドラッグされた要素が表示されます。しかし、以下の実装ではこの要素を確認できません。
<div class="list-item"
ng-repeat="item in items | filter:query"
dnd-draggable="column"
dnd-moved="items.splice($index, 1)"
dnd-effect-allowed="move"
dnd-selected="models.selected = item"
ng-class="{'selected': models.selected === item}"
draggable="true"
>
<div class="icon">
<span class="some-button"></span>
</div>
<div class="title">
{{item.title}}
</div>
</div>
css を次のように設定しました。
.dndDragging:not(.dndDraggingSource) {
display: block;
background-color: red;
}
.dndDraggingSource {
display: none;
}
.dndPlaceholder {
background-color: #ddd;
}
.dndDraggingSource {display: none}
プレースホルダーを見ることができ、元の要素が正しく消えることを確認しました。ただし、 で識別されるようにドラッグされている要素は.dndDragging:not(.dndDraggingSource)
、コンテンツのない適切なサイズの赤いブロックとして表示されます。
ドラッグの舞台裏で何が起こっているのか? このドラッグされた要素がデモ コードで正しく表示されるのはなぜですか? display: none
onを使用するのが一般的であるように思われる.dndDraggingSource
ので、ドラッグされている別の DOM 要素があると確信しています。そのDOM要素とは何ですか?どうすればそれを調べることができますか? 振る舞いからすると、引きずり回されている別の要素があると思います。しかし、angular-drag-and-drop-lists.js のソース コードを調べると、element.on('dragstart', function() {}
ブロックは でタグ付けされた要素のコピーを作成するために何もしていません.dndDraggingSource
。
==更新==
それで、意味不明なことを div に詰め込むと、それが表示されることに気付きました。しかし、スパンもドスもあり{{item.title}}
ません。これを機能させるためにデータモデルで何かする必要がありますか?