2017-12-10 6 views
1

私のWebixアプリケーションでは、いくつかのノードとリーフノードを持つツリーがあります。 追加のノードまたはリーフノードがメインブランチまたは任意のサブブランチに追加された場合、外部の.jsファイルからツリーのその部分を自動的にリフレッシュしたい(ノードを展開することによって可能)。 https://webix.com/snippet/2caca842要素がツリーに追加されたときにWebixツリーノードを自動的に展開する方法

私は拡張機能を書くことができるかのいずれかの例が参考になります。

は、私がここにスニペットを持っています。

ありがとうございました。

+0

treeObjectをvar treeObjとすると、treeObj._htmlmapを実行するとツリーのすべてのIDが取得されます。また、treeObj._viewobj.textContentによって、各ノードのすべてのテキスト名が取得されます。 treeObjからノード名と対応するIDのマッピングを取得する方法はありますか?ありがとう。 –

答えて

1

私はあなたの問題のステートメントが何であるかは分かりませんが、ノードの完全な情報、親とのマッピング、親のIDなどが必要な場合はinstance.data.pullを使用できます。すべての行と列の完全な情報ここでinstanceはコンポーネント{ツリー、データテーブル、ツリーテーブル、使用しているwebixのどのコンポーネントでも}のインスタンスです。

あなたは

rootは親要素になります
1: {id: "1", open: false, value: "Chicago", $parent: "root", $level: 2, …} 
1.1: {id: "1.1", value: "Houston", $parent: "1", $level: 3, $count: 0} 
1.2: {id: "1.2", value: "San Diego", $parent: "1", $level: 3, $count: 0} 
2: {id: "2", value: "States", open: true, $parent: "root", $level: 2, …} 
2.1: {id: "2.1", value: "California", $parent: "2", $level: 3, $count: 0} 
2.2: {id: "2.2", value: "Florida", $parent: "2", $level: 3, $count: 0} 
root: {id: "root", value: "Cities", open: true, $parent: 0, $level: 1, …} 

$levelopenは、現在の要素が開いているかどうかを表し、この要素が存在するレベルで表して、あなたが結果を取得しますonBeforeOpenイベント内this.data.pullを行うことができますまたは閉じる。

+0

あなたが提供したものは本当に役に立ちます。これから私は 'ヒューストン'のIDが1.1であることを知っています。ヒューストンもリーフノードを持っているとしましょう。私はもう一つリーフノードを 'abcd'として追加しました。ヒューストンノードを再びリフレッシュ/拡張するときに追加した後、拡張されますが、「ヒューストン」の下にある既存のノードも再作成されます。だから私は 'ヒューストン'の下にすべての葉ノードを2回取得します。他のすべてのノードで同じ問題が発生します。新しく追加/削除されたツリー/ノードをリフレッシュすることでそれを手助けできれば幸いです。小さなexmapleかもしれない。 –

+0

ノードを一度作成すると、ノードを自動的に2回作成する方法がわかりません。より詳細なコードスニペットを表示してください。 –

+0

私はいつか私がそれをより詳しく説明できるように私を与えてください。ありがとう –

関連する問題