2012-12-07 6 views
5

İçinde knockout sıralanabilir listeleri bulunan nakavtlı bir sıra listeye sahibim. Temel olarak 'mevcut öğrenci' örneği (http://jsfiddle.net/rniemeyer/UdXr4/), yalnızca tabloların da sıralanabilir olmasını istiyorum.Alt listeye bırakmaya izin vermek için yuvalanmış iç içe geçmiş sorgulama nasıl engellenir?

Bu çalışmayı daha çok çalışıyorum, ancak tabloları diğer tablolara sürükleyebilme konusunda bir sorunum var.

ben masa listesine bırakılan öğrencilere önlemek için masa listesindeki bir AllowDrop'u işlev eklemek başardı

,
 this.isTable = function(arg) { 
      return arg.sourceParent != undefined; 
     }; 

yüzden öğrenci listelerinin benzer bir şey olması umuduyla olduğunu olmaz bir masanın içinde olmasına izin ver ama benim için hayatımı anlayamıyorum. Ive bakarak, ya da cinsiyet özelliği kullanılabilir olup olmadığını (hatta sadece öğrenciler üzerinde olması gerekir) görmek için bile denedim ...

Durumumu daha da benzer hale getirmek için bir jsfiddle düzenledim; Bir tablo sürükleyip sürüklemediğini görürsünüz, başka bir masaya bırakabilirsiniz. http://jsfiddle.net/nYSLq/1/

Herhangi bir yardım veya öneri çok takdir edilecektir.

cevap

5

Bu tür bir şey için, connectClass seçeneğini kullanmak iyi bir seçimdir. Bu, öğelerin bırakılabildiği kapların tipini sınıflandırmaya yardımcı olacaktır.

Yani, yapabileceği: eklentisi, sizin için uygun elemanlar için o sınıfı atamak anlamına

<div id="main" data-bind="sortable: { data: tables, connectClass: 'tables' }"> 
    <div class="table"> 
     <div data-bind="text: students.id"></div> 
     <div class="seats" data-bind="sortable: { data: students, allowDrop: $root.isTableFull, connectClass: 'students' }"> 
      <div class="student" data-bind="text: name"></div> 
     </div> 
    </div> 
</div> 

Not.

Şimdi, öğrenciler sadece öğrencilerle birlikte sıralanacak ve tablolar sadece birlikte olacak. Bu tam olarak ne ihtiyaç olduğunu

+0

http://jsfiddle.net/rniemeyer/7yA2s/ Çok teşekkür ederim, ve temizleme çok güzel:

Burada dışarı çıkardı gereksiz ekstralar bazılarıyla bir güncellenmiş keman olduğunu. ConnectedClass'ı denedim, ama sanırım onu ​​nasıl kullanacağımı ve işe yaramayacağını anladım. Tekrar teşekkürler ve hızlı cevap için. – user1886432