1
私はAPIコールからデータ配列を取得します。このデータから、私は特定の値だけを表示する必要があります。各配列の内部は、ネストされた配列イベントのプロパティです。このネストされた配列を表示するには、初期データ配列をカスタム配列に再フォーマットします。新しい配列には1つの制限があります。入れ子配列から取り出したすべてのオブジェクトプロパティを保存する必要があります。グリッドにはデータと列の定義が表示されますが、解決できない問題は1つだけです。グリッド内のデータはオブジェクトとして表示されます。私はui-gridドキュメントを続け、列ごとにセルフィルターを設定しましたが、機能しません。動的列のセルフィルタ、角度uiグリッド
私のミスはどこですか?私はどんな助けにも感謝します。
は、ここに私のコードとplunkerあなたは、各eventPropertyのために全体eventPropertyオブジェクト(カスタム[I])を設定している
var app = angular.module('app', ['ngAnimate', 'ngTouch', 'ui.grid']);
app.controller('MainCtrl', ['$scope', '$http', 'uiGridConstants', '$interval', function ($scope, $http, uiGridConstants, $interval) {
$http.get('data.json')
.success(function(response) {
var array = [];
var events = response;
angular.forEach(events, function (field) {
var custom = field.eventProperties;
var tempObj = {};
tempObj.id = field.id;
tempObj.eventTypeName = field.eventTypeName;
tempObj.description = field.description;
for (var i = 0; i < custom.length; i++) {
tempObj[custom[i].name] = custom[i];
}
array.push(tempObj);
});
$scope.gridOptions.data = array;
$interval(function() {
for (var i = 0; i < $scope.gridOptions.columnDefs.length; i++) {
$scope.gridOptions.columnDefs[i].enableSorting = false;
$scope.gridOptions.columnDefs[i].cellFilter = 'cellValue';
}
console.log($scope.gridOptions.columnDefs);
$scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.COLUMN);
$scope.gridApi.core.refresh();
}, 0, 1);
});
$scope.gridOptions = {
rowHeight: 50,
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
}
}
}])
.filter('cellValue', function() {
return function(cell) {
return cell.value
};
});
残念ながら、私はすべてのプロパティを保持する必要があります。将来、カスタムフィルタに使用する予定であるためです。実際にはこれは私が新しい要求を得る前のやり方です – antonyboom
次に、オブジェクトを別の変数に格納し、フィルタリング用のカスタムフィルタを作成する必要があります。 uiGridモデルでそれらを保持すると、オブジェクト全体が表示されます。 – salix
、セルフィルターを設定する他の方法はありませんか? – antonyboom