imuiTreeNode
コンポーネント情報 | |
---|---|
モジュール | im_ui |
導入されたバージョン | 8.0.3 |
バージョン | 8.0.3 |
機能説明
属性一覧
注釈 | 属性名 | 型 | 説明 | 省略時の動作 |
---|---|---|---|---|
id |
string | ツリーのidです | 代替idを付与 | |
name |
string | ツリーのnameです | 代替nameを付与 | |
value |
Array | - | - |
サンプル
value

valueには以下のオブジェクトを指定してください
imuiTreeのurl属性、imuiTreeNodeを組み合わせて使用することで、ノード情報をノード展開時に適宜通信し取得することができます
これにより、ツリー初期表示時のレスポンスを向上させることが可能です
通信先サーバへのリクエストには、ノード情報のattributesに設定した名前/値が送信されます
以下のサンプルコードでは分かりやすさのためノード情報をプログラム中に埋め込み返却していますが、実際の処理ではnodeIdentityの値に応じて各種APIを通じた結果を返す実装を行ってください
注釈 | 属性名 | 型 | 説明 | 省略時の動作 |
identity | string | ノードのidです | 代替idを付与 | |
無害化国際化 | label | string | ノードのラベルです | - |
無害化 | classNames | Array | ノードのclass属性に指定するクラス名の配列です | - |
無害化 | rel | string | ノードのrel属性です(主にtypesプラグインと組み合わせて使用します) | - |
無害化 | imgPath | string | ノードに表示する画像のURLです プラグインにimuiTreeIconを指定しないと使用できません imgPathとiconClassを同時指定することはできません、どちらか片方のみを指定してください | - |
無害化 | iconClass | string | ノードに表示する画像のCSSスプライトクラス名です プラグインにimuiTreeIconを指定しないと使用できません imgPathとiconClassを同時指定することはできません、どちらか片方のみを指定してください | - |
無害化 | attributes | Object | ノードに指定する属性名と属性値をキーと値に持つオブジェクトです | - |
children | Array | ノードの子ノードです | - |
これにより、ツリー初期表示時のレスポンスを向上させることが可能です
通信先サーバへのリクエストには、ノード情報のattributesに設定した名前/値が送信されます
以下のサンプルコードでは分かりやすさのためノード情報をプログラム中に埋め込み返却していますが、実際の処理ではnodeIdentityの値に応じて各種APIを通じた結果を返す実装を行ってください
サーバサイド JavaScript
var params = { plugins: ['ui', 'themes', 'html_data'] };
HTML
<imart type="imuiTree" parameter=params url="sample/tree/ajax" />
サーバサイド JavaScript(通信先url「sample/tree/ajax」を実装するjs)
var nodes; function init(request) { nodes = buildList(request['data-node-identity']); // attributes に指定した属性名/属性値がリクエストとして送信されます Web.getHTTPResponse().setContentType('text/plain; charset=utf-8'); // 出力する HTML にテーマがかかってしまわないように、text/plain とします } function buildList(nodeIdentity) { if (nodeIdentity == null) { // トップレベルのノード情報を返却します(以下のコードですべてのノードに「data-node-identity」を指定しているため、この属性名が存在しないと言うことは、トップレベルのノードのリクエストであるはず) return [ { identity: 'node1', label: 'ノード1', classNames: ['ClassName1', 'ClassName2'], rel: 'TypeA', attributes: { 'data-node-identity': 'ThisIsNode1', 'data-certain-attribute1': 'attribute-value1', 'data-certain-attribute2': 'attribute-value2' } }, { identity: 'node2', label: 'ノード2', classNames: ['jstree-closed', 'ClassName3'], // 子ノードが存在するノードには、ノードの開閉ができるようにするために「jstree-closed」クラスを指定します rel: 'TypeB', attributes: { 'data-node-identity': 'ThisIsNode2', 'data-certain-attribute': 'attribute-value3' } } ]; } else if (nodeIdentity === 'ThisIsNode2') { // 「ノード2」直下のノード情報を返却します return [ { identity: 'node3', label: 'ノード3', classNames: ['jstree-closed', 'ClassName4', 'ClassName5'], // 子ノードが存在するノードには、ノードの開閉ができるようにするために「jstree-closed」クラスを指定します rel: 'TypeA', attributes: { 'data-node-identity': 'ThisIsNode3', 'data-certain-attribute': 'attribute-value4' } } ]; } else if (nodeIdentity === 'ThisIsNode3') { // 「ノード3」直下のノード情報を返却します return [ { label: 'ノード4', attributes: { 'data-node-identity': 'ThisIsNode4' } } ]; } return []; }
HTML(通信先url「sample/tree/ajax」を実装するhtml)
<imart type="imuiTreeNode" value=nodes />
ajax通信で取得したHTMLを返却する場合
- nothemeを指定することで、返却するHTMLにテーマがかからないようにします。
- リクエストにセットする方法と設定ファイルに記述する方法があります。詳細は以下を参照してください。
- このサンプルではリクエストへの属性として指定する方法でテーマが適用されていないHTMLを返却します。
サーバサイド JavaScript
var params = { plugins: ['ui', 'themes', 'html_data'] };
HTML
<imart type="imuiTree" parameter=params url="sample/tree/ajax" />
サーバサイド JavaScript(通信先url「sample/tree/ajax」を実装するjs)
var nodes; function init(request) { nodes = buildList(request['data-node-identity']); // attributes に指定した属性名/属性値がリクエストとして送信されます request.setAttribute('imui-theme-builder-module','notheme'); // 出力する HTML にテーマがかかってしまわないように、notheme を指定します } function buildList(nodeIdentity) { if (nodeIdentity == null) { // トップレベルのノード情報を返却します(以下のコードですべてのノードに「data-node-identity」を指定しているため、この属性名が存在しないと言うことは、トップレベルのノードのリクエストであるはず) return [ { identity: 'node1', label: 'ノード1', classNames: ['ClassName1', 'ClassName2'], rel: 'TypeA', attributes: { 'data-node-identity': 'ThisIsNode1', 'data-certain-attribute1': 'attribute-value1', 'data-certain-attribute2': 'attribute-value2' } }, { identity: 'node2', label: 'ノード2', classNames: ['jstree-closed', 'ClassName3'], // 子ノードが存在するノードには、ノードの開閉ができるようにするために「jstree-closed」クラスを指定します rel: 'TypeB', attributes: { 'data-node-identity': 'ThisIsNode2', 'data-certain-attribute': 'attribute-value3' } } ]; } else if (nodeIdentity === 'ThisIsNode2') { // 「ノード2」直下のノード情報を返却します return [ { identity: 'node3', label: 'ノード3', classNames: ['jstree-closed', 'ClassName4', 'ClassName5'], // 子ノードが存在するノードには、ノードの開閉ができるようにするために「jstree-closed」クラスを指定します rel: 'TypeA', attributes: { 'data-node-identity': 'ThisIsNode3', 'data-certain-attribute': 'attribute-value4' } } ]; } else if (nodeIdentity === 'ThisIsNode3') { // 「ノード3」直下のノード情報を返却します return [ { label: 'ノード4', attributes: { 'data-node-identity': 'ThisIsNode4' } } ]; } return []; }