ページにKnockout.jsを使用しています。私のViewModelにはオブジェクトの配列が含まれています。各オブジェクトには、子の配列が含まれています。より一般的には、これは列と列の内容を含むテーブルを表す必要があります。
まず、foreach:itemArrayを処理して列を取得します。次に、ネストされたforeach:childsを使用しています。ここで、childsは列コンテンツの配列です。
MyChildsは列間でドラッグ可能である必要があります。したがって、ネストされたforeachを見つけたjsに置き換えました
https://github.com/rniemeyer/knockout-sortable
http://jsfiddle.net/rniemeyer/Jr2rE/
再びコードで-最初の段階:
<div id="lanesContainer" data-bind="foreach: lanes">
次に、ネストされたforeach(#lanesContainer内)をたどります
<ul data-bind="sortable: { template: 'laneTemplate', data: childs, afterMove: $root.dropCallback }">
アイテムはドラッグ可能になりましたが、ドロップはどういうわけか失敗します。私のデバッガーはjsの次の部分で壊れます:
//take destroyed items into consideration
if (!templateOptions.includeDestroyed) {
targetUnwrapped = targetParent();
for (i = 0; i < targetIndex; i++) {
//add one for every destroyed item we find before the targetIndex in the target array
if (targetUnwrapped[i] && targetUnwrapped[i]._destroy) {
targetIndex++;
}
}
}
targetParentは関数ではなくオブジェクトであるため、3行目で中断します。どうすれば問題を解決できますか?