2013-06-27 30 views
6

Knockout.js sıralanabilir eklentisiyle çalışıyorum; ancak, şu ana kadar çözemediğim bir sorunla karşılaştım. İki tane sıralanabilir bağlarım var, bir tanesi kovalar için, diğeri de bucketItems için. BucketItems'i kovalar arasında yeniden sıralayabilirim; ancak, kovaları yeniden sipariş edemiyorum. Bunun neden olabileceği hakkında bir fikrin var mı? Ben de iç içe geçmiş bağlamaları kullanıyorum, ama anlayabildiğim kadarıyla, bu sorunlara neden olan şey değil.Knockout.js yuvalanmış sıralanabilir bağlamalar

Sunduğunuz her türlü içgörüyü takdir ediyorum.

+0

gönderin sizin Kod ve belirli nedenlerle –

+0

kullanıyorsunuz eklenti, kodumu gönderemiyorum; Ancak, benim sorunumun kapsamını daraltmayı başardım. Ben bir dizi bucketIds var ve ben buna sıralanabilir uygulandığında, doğru bir şekilde değil. Ne yazık ki, neden bağlanmadığını bilmiyorum. (Ryan neimeyer tarafından yaratılan knockout.js-sortable eklentisini kullanıyorum) – user2391998

cevap

8

Tam yapınızı bilmiyorum, ancak hangi sıralı listelerin bağlı olduğunu kontrol etmek için connectClass seçeneğini kullanabilirsiniz. Bunu yapan Örneğin,:

<ul data-bind="sortable: { data: buckets, connectClass: 'buckets' }"> 
    <li> 
     <span data-bind="text: name"></span> 
     <ul data-bind="sortable: { data: items, connectClass: 'items' }"> 
      <li data-bind="text: name"></li> 
     </ul> 
    </li> 
</ul> 

Yalnızca kovalar içinde bir kova ve öğeleri içinde bir öğe düşmesi mümkün olacaktır. Eklenti, sınıfı ana öğeye otomatik olarak ekler. Eğer kova arasındaki öğeleri sıralamak mümkün istemeseydi http://jsfiddle.net/rniemeyer/YaLgL/

, o zaman geçerli olabilir her benzerine benzersiz connectClass: Burada

bir örnek

http://jsfiddle.net/rniemeyer/czNe8/

+0

Bir öğenin sıralanabilir olmasını istemediğinizde, ancak diğerlerinin işe yaraması için bunu nasıl çalıştırıyorsunuz? Bunu her ne kadar madde yeniden düzenlenebilir olmasa da kullanmayı denedim. Bütün ebeveyn UL denediğimde harekete geçti ve bu da UL'ın ana LI'sının yeniden düzenlenmesini sağladı (garip). – Phil

+0

@ Phil- belki bir notla jsFiddle yapmaya çalıştığınız şeyi koyabilirsiniz? İşe koyulmasının bir yolu var, ama ben senin senaryonun üstünde olduğum için olumlu değilim. Teşekkürler! –

+0

Bir keman ekledim: http: //jsfiddle.net/zoldello/8hvXN/2/ Sorun şu ki, DEĞİL HAREKETLİ öğeyi taşımaya çalıştığımda, tüm öğe seçilir. Farenizi DEPOLANMADI üzerinde tutmaya çalışın ve tüm kabın hareket ettiğini fark edin. Bu sorunları durdurmak için bir yolu var mı? – Phil