Ryan Niemeyerのドラッグアンドドロッププラグイン(http://www.knockmeout.net/2012/02/revisiting-dragging-dropping-and.html)を使用してプロジェクトを変換しようとしています。observableArrayの親を探す
アイテムを別のグループにドラッグすると、ドラッグされたアイテムのプロパティを、にドラッグされているobservableArrayを含むオブジェクトに基づいて設定する必要があります。
Iは、線に沿ってビューモデルを有する:ViewModelに
-
- TopLevelObject
- 子供(observableArray)その親プロパティがTopLevelObjectに設定されている
- チャイルドA
- その親プロパティがTopLevelObjectに設定されている
- 子Bの子供(observableArray)親プロパティは子どもB
- その親プロパティが設定されている子Yに設定されている
- 子X子B子供B
へ
- 子供(observableArray)その親プロパティがTopLevelObjectに設定されている
- TopLevelObject
それは私が設定する必要があり、親プロパティです。私はarg.targetParent
にアクセスしていますが、上記の例では 'Children' observableArrayです。だから私は解決策のようなものに見えると思います:
ko.bindingHandlers.sortable.afterMove = function(arg) {
// how do I get the object that contains the arg.targetParent observable array??
var parentOfTargetObservableArray = /* the containing object of arg.targetParent */
arg.item.MyParent(parentOfTargetObservableArray);
}
分離でobservableArrayを考えると、それを含むオブジェクトを見つけるための方法があるの?
ありがとう、Ryan。これは私が簡単に親に行くことができないことを確認しました(私は怒っていると思っていました!)。私は "this.Children.parent = parent;"が好きです私が必要とするargオブジェクトの追加情報を含めるようにソート可能なプラグインを拡張しようとするかもしれません(例:targetParentContainer:ko.dataFor(ui.item.parent()[0] ); ")。 –
私は 'ui'と' event'引数をコールバックに公開することを検討するかもしれません。 –
良いアイデア。これは確かに、ko.dataFor()、.data()、.parent()などの関数を呼びたい場合が増えています。 –