İki bağlı ui-sıralanabilir listelem var. Listelerden biri boş olduğunda, bir mesaj göstermem gerekir; sürükleme sırasında bu boş liste gezinirken, stillenmiş bir bırakma hedefi göstermem ve boş liste mesajını gizlemem gerekiyor. Bu kodun büyük çoğunluğunu programlayabildim ve here is a simplifed Codepen of it working.Bunu, yalnızca boş bir konum veya ui-sortable gösterisinin bırakma hedef yer tutucusu olarak nasıl yapabilirim?
Hata, doldurulmuş listeden boş listenin üzerine sürüklendikten sonra tekrar çıktıktan sonra boş liste yer tutucusunun ve stil damlasının boş olduğunu gösterir. hedef. İşte bir ekran görüntüsüne:
:
scope.isEmpty = function() {
if (!scope.attachments) {
return true;
} else if (scope.dragDirection === 'drag-out' && !scope.hovered) {
return scope.attachments.length <= 1;
} else if (scope.hovered) {
return false;
} else {
return scope.attachments.length === 0;
}
};
Not Devletin takip ediyorum kapsam ve $ kullanımıyla ilgili şöyle DOM güncellemelerini sağlamak için geçerlidir:
: Buradafunction onDragStart() {
scope.$apply(function() {
scope.dragDirection = 'drag-out';
});
}
function onDragStop() {
scope.$apply(function() {
scope.dragDirection = '';
});
}
function onDragOver() {
scope.$apply(function() {
scope.hovered = true;
});
}
function onDragOut() {
scope.$apply(function() {
scope.hovered = false;
});
}
direktifleri şablonu için html
<div class="drop-target" ui-sortable="sortOptions" ng-model="attachments">
<div ng-repeat="attachment in attachments" class="attachment-box">
<span class="fa fa-bars pull-left drag-handle"></span>
<div class="link-attachment">
<a href ng-href="{{ attachment.fileUrl }}" target="_blank" class="attachment-name">{{ attachment.name }}</a>
<div class="extra-info link-info">{{ attachment.fileType }}</div>
</div>
</div>
<attachment-empty-state ng-show="isEmpty()"></attachment-empty-state>
</div>
Bağımlılık listesi oldukça uzun, kod yazısının çalışması için, gerçek üretim kodundaki kodu sadeleştirdim ve bağımlılıkları ortadan kaldırarak özel kodu oldukça önemli hale getirecektim. Kendinizi çalıştırmaya çalışmak istiyorsanız bağımlılıkların bir listesi: jquery, jquery-ui, açısal, bootstrap, lodash ve angular-ui'den sıralanabilir. Orada da bazı font-awesome var.
Son öğeyi bir kapsayıcıdan sürüklediğinizde ne yapmak istersiniz? – goldylucks
Şu anda codepen'de nasıl çalıştığına bakın - ancak son madde ilacı ilk giren ilaçla aynı davranışı gösteriyor. Hem "boş liste mesajı" hem de yer tutucu gösteriliyor. Sürükle yardımcısını, sürükleme yardımcısı tamamen listeden çıkana kadar göstermeli ve daha sonra "boş liste iletisine" geçmelidir. – nephiw