0

私はVirtualTreeのデモをフォローしていますが、選択範囲の親を取得する方法が見つからないようです。

tree.getSelection().addListener("change", function(e){
    var selection = tree.getSelection();
    console.log(selection.getItem(0).getName()); // works just fine to get the name
}

このJSONストアからプロパティ「Grandparent」と「Parent」を取得しようとしています。

  {
      "name": "root",
      "children": [
        {
          "name": "Grandparent",
          "children": [
            {
              "name": "Parent",
              "children": [
                {
                   "name": "Name of my Selected Item",

私はこれを試しました:

tree.getModel().getChildren().getItem(0)

ただし、getItem(X)の値Xを取得することも簡単ではありません。

私はあなたがこれに関して提供できるどんな助けにも感謝します。ありがとう!

4

1 に答える 1

1

ツリーデータモデルにはデフォルトで親参照がないため。それを達成する簡単な方法はありません。それでも、2つの選択肢があります。

  1. 独自のツリークラスをモデルとして使用し、親参照を自分で実装できます。これは、マーシャラーの代理人を使用して行うことができます[1]。親参照のバブルイベントをアクティブにしないでください。デッドロックが発生するためです。

  2. 検索アルゴリズムを実装して、親を取得できます。その参照をあまり必要とせず、データが大きすぎない場合は、それも使用できる方法です。

[1] http://demo.qooxdoo.org/current/apiviewer/#qx.data.marshal.IMarshalerDelegate

于 2012-05-24T07:07:49.627 に答える