0

私は AngularJS 環境にいて、jqWidgets TreeGrid を機能させようとしています。

dataAdapter をすべて Json 形式のデータに接続していますが、グリッドは 1 行しかレンダリングしません。

また、同じページにテスト用のtreeGridがあり、サンプルデータがあり、正常に動作しています。

最終的な Json データ設定を並べて配置し、どこが間違っているかを判断しようとしています。

このページをガイドとして使用して、ツリーグリッド設定などを結び付けました。http://www.jqwidgets.com/jquery-widgets-documentation/documentation/angularjs/angularjs.htm

「悪い」グリッドの jqx treegrid ディレクティブを示す html は次のとおりです。

<jqx-tree-grid jqx-instance="jqGridHierObj" jqx-settings="vm.jqGridHierSettings"></jqx-tree-grid>

そして、「悪い」Json データツリー設定が vm.jqGridHierSettings にバインドされました (インラインで投稿するには大きすぎます):

http://www.bobmazzo.com/grid/TreeGrid_Data_Bad.txt

そして、従業員テストデータを含む「良い」グリッドは次のとおりです。

HTML:

<jqx-tree-grid jqx-instance="jqGridEmpObj" jqx-settings="vm.jqGridEmpSettings"></jqx-grid>  

vm.jqGridEmpSettings Json データ:

http://www.bobmazzo.com/grid/TreeGrid_Data_Good.txt

そして、私の Angular コントローラー コードから、Json データ バインディングを使用した JavaScript のスニペット:

「悪い」グリッドが機能しない理由を理解するのに助けが必要です! そして、データの階層を表示する必要がある1行のみをレンダリングする理由.

ありがとう。

ボブ

4

1 に答える 1

0

解決策を見つけました。「子」を「ソース」オブジェクトの配列型として定義する必要があります。つまり、そのオブジェクトを dataAdapter に渡す前です。以下の dataFields プロパティを参照してください。

   var source = {
            dataType: "json",
            dataFields: [
                {
                    "name": "id",
                    "type": "number"
                },
                {
                    "name": "field0",
                    "type": "string"
                },
                {
                    "name": "field1",
                    "type": "number"
                },
                {
                    "name": "field2",
                    "type": "number"
                },
                 {
                     name: 'children',      // MUST DEFINE CHILDREN AS ARRAY TYPE
                     type: 'array'
                 },
            ],
            hierarchy: {
                root: 'children'
            },
            id: 'id',
            localData: myData
        };

   var dataAdapter = new $.jqx.dataAdapter(source);
于 2014-10-01T12:08:10.500 に答える