2017-09-27 20 views
0

Angular2、IgniteUI/Infragistics PivotGridコントロールを使用してPivotGridをロードするアプリケーションを開発しました。キューブの情報(Measures/Dimensions)を動的に渡し、jsonデータをPivotGridにバインドします。 IgniteUI/Infragisticsが提供するAngular2ラッパーコンポーネントをgithubデモで使用しています。PivotGridとそのセレクタが正しくバインドされていないか正しく動作していません

私のアプリケーションについて、ここでbreifの、について説明: -

ワークブックは、ドロップダウンを持っている親コンポーネントです。ドロップダウンのOnchangeイベントは、Pivo​​tGridをロードしてバインドするために、Workbookコンポーネントの子コンポーネントであるPivotGridコンポーネントをトリガーします。 PivotGridグリッドがバインド/ロードされた後、Pivo​​tGridのセレクタが読み込まれます。このセレクタはこのPivotGridの下のslideoutという子コンポーネントに配置されます。基本的には、ドロップダウンが変更されるたびに、適切なPivotGridとセレクタコンポーネントをそれぞれロードする必要があります。親コンポーネントであるブックの

  1. ドロップダウンを持っている、「のOnChange」ドロップダウン値が変化すると、その入力以来PivotGridでngOnChangesイベントを起動しようとしているイベントトリガ()の値をパラメータが変更されています。
  2. ngOnChangesイベント中のPivotGridでは、グリッドをバインドするローカルメソッドLoadInfraPivotGrid()を呼び出します。グリッドをバインドした後、スライドアウトコンポーネントのngOnChangesイベントを再度トリガする必要がある、スライドアウトコンポーネントのInput()パラメータ値を変更します。
  3. ngOnChangesイベント中のスライドアウトでは、セレクタコンポーネントをバインドします。
  4. セレクタコンポーネントをバインドするデータは、データを保持する@InjectableコンポーネントSessionServiceを使用して親PivotGridから渡されます。値はこのSessionServiceから読み取られ、セレクタにバインドされます。

私がここで直面している問題は、データがPivotGrid/Selectorに正しくバインド/ロードされていないことです。結果は、セレクタでMeasures/Dimensionsを変更しようとするたびに、Pivo​​tGridがクラッシュし、次のエラーメッセージが表示されます。セレクタコントロールで変更/修正を試みると、この問題が継続して発生します。

Uncaught TypeError: Cannot read property 'top' of undefined 
 
     at t.(anonymous function).(anonymous function)._positionOverlayDropAreas (http://localhost:3000/js/IgniteUI/infragistics.lob.js:662:19496) 
 
     at t.(anonymous function).(anonymous function)._positionOverlayDropAreas (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028) 
 
     at t.(anonymous function).(anonymous function)._onDataRendered (http://localhost:3000/js/IgniteUI/infragistics.lob.js:662:18161) 
 
     at t.(anonymous function).(anonymous function)._onDataRendered (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028) 
 
     at HTMLTableElement.dataRendered (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:12953) 
 
     at t.(anonymous function).(anonymous function)._trigger (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:10002) 
 
     at t.(anonymous function).(anonymous function)._renderData (http://localhost:3000/js/IgniteUI/infragistics.lob.js:138:17643) 
 
     at t.(anonymous function).(anonymous function)._renderData (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028) 
 
     at t.(anonymous function).(anonymous function).proxy (http://code.jquery.com/jquery-1.12.3.js:529:14) 
 
     at Class._invokeCallback (http://localhost:3000/js/IgniteUI/infragistics.core.js:270:30197)

私はドリルダウン場合でも行のレポートをURL

にサンプルソースを見つけてください、それがクラッシュします。 私はここで何をしているのですか?任意の修正?

編集: ここでは別のエラーが発生しました。上記のエラー/例外は、サンプルコード自体で再現できます。問題を再現する手順: -

  1. ドロップダウンから「Report3」を開いてください、Report3は
  2. ドラッグ&ドロップの列に「アイテム・スコアカード」から「ベンダー」(スナップショットを参照してください)
  3. をロードします
  4. "Retailer"を "Rows"にドラッグします この直後にグリッドがクラッシュします。

Uncaught TypeError: Cannot read property 'key' of undefined 
 
     at t.(anonymous function).(anonymous function)._transformGridData (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:23266) 
 
     at t.(anonymous function).(anonymous function)._transformGridData (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028) 
 
     at t.(anonymous function).(anonymous function)._configureOptions (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:12632) 
 
     at t.(anonymous function).(anonymous function)._configureOptions (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028) 
 
     at t.(anonymous function).(anonymous function)._onGridUpdated (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:26768) 
 
     at t.(anonymous function).(anonymous function)._onGridUpdated (http://code.jquery.com/ui/1.10.3/jquery-ui.min.js:5:5028) 
 
     at Class.<anonymous> (http://localhost:3000/js/IgniteUI/infragistics.lob.js:661:9410) 
 
     at Class.dispatch (http://code.jquery.com/jquery-1.12.3.js:5226:27) 
 
     at Class.elemData.handle (http://code.jquery.com/jquery-1.12.3.js:4878:28) 
 
     at Object.trigger (http://code.jquery.com/jquery-1.12.3.js:5130:12)

enter image description here

答えて

1

第1のピボットグリッドを作成するときにwidgetIdが属性が初期設定されなければなりません。 InfraPivotGridコンポーネントでgridIdプロパティを宣言する際にこれがいずれかの実行する必要があります:

private gridId: string = "pivotGrid"; 

か、そのクラスのコンストラクタに:

constructor(private _SessionService: SessionService, private _WidgetConfigService: WidgetConfigService) { 
     console.log("In constructor of InfraPivotGrid"); 
     this.gridId = "pivotGrid"; 
    } 
+0

私はこの変更を行っているが、今、私は別のエラーを取得していますスタックトレース:TypeError:未定義の の未定義のプロパティ 'key'を読み取ることができません(匿名関数)。(匿名関数)._ transformGridData(http: //www.mindtreedashdemo.com:8080/js/IgniteUI/infragistics.lob.js:661:23266) e 。(匿名関数)。(匿名関数)._ transformGridData(http://code.jquery.com/ui/1.11.1/jquery-ui.min.js:6:7983) e。(匿名関数)。 (匿名関数)._ configureOptions – Krishnan

+0

正確な手順を再現することはできますか?私は現在の措置を取り除き、pivotdataselectorを通して新しい措置を追加しようとしましたが、それは正常に動作しています。それはいくつかの具体的な尺度やディメンションは動作していません – dkamburov

+0

問題を再現する手順: - "Report3"をドロップダウンから開き、Report3が読み込まれます。 "Item Scorecard"から "Vendor"を列にドラッグ・ドロップします(スナップショットを参照してください) "Retailer"を "Rows"にドラッグ・ドロップするこの直後にグリッドがクラッシュします。 – Krishnan

関連する問題