私が取り組んでいるクエリツールを持っています。これには、入力された角度のあるフォームがあり、送信されると、AJAX を使用して JSON が返され、それがui-gridにレンダリングされます。JSON 応答は次のようになります。
{
"success": true,
"message": "",
"columns": ["first_name", "last_name", "company", "employed"]
"results": [
{first_name: "John", last_name: "Smith", company: "Abc Inc", employed: true},
{first_name: "Johnny", last_name: "Rocket", company: "Abc Inc", employed: true}]
}
私は PHP と angular の両方に取り組んでいるので、必要に応じてこの JSON 応答を完全に制御できます。最初の AJAX 呼び出しからの JSON 応答がレンダリングされた後、同じページで別の別の AJAX 呼び出しを実行して新しいデータ セットを取得すると、問題が発生します。この新しいデータ セットは、どの列もレンダリングしません。元のデータセットにはありませんでした。どの列も同じではない場合、テーブルは基本的にクリアされるため、これは非常に問題があり、この単一ページ アプリの ui-grid に完全に異なるデータをロードする必要があることがよくあります。
JSON が受信されたら、ui-grid がバインドされjsonResult.results
ている古い$scope.myData
変数に単純にバインドします。
この問題を分離するプランカーを作成しました。「パンク」列を含むデータセットが読み込まれ、「データの交換」をクリックすると、「パンク」ではなく「従業員」列を含むデータセットが読み込まれます。これまで、$watch を使用して $scope.myData 変数が変更されたときに更新またはリロードするディレクティブを調べ、$scope.columnDefs のようなものを見つけて ui-grid に知らせる方法を調べました。angular と javascript は比較的新しいので、ディレクティブはまだ頭を悩ませています。