나는 다음과 같은 코드가 있습니다수정 NG 그리드에 데이터를 변경하는 방법
PHP 파일에서 JSON의 매우 큰 부하를 가져옵니다var app = angular.module('mcmmo', ['ngGrid']);
app.controller('mcmmoCtrl', function($scope, $http) {
$scope.filterOptions = {
filterText: "",
useExternalFilter: true
};
$scope.totalServerItems = 0;
$scope.pagingOptions = {
pageSizes: [250, 500, 1000],
pageSize: 250,
currentPage: 1
};
$scope.setPagingData = function(data, page, pageSize){
var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
$scope.myData = pagedData;
$scope.totalServerItems = data.length;
if (!$scope.$$phase) {
$scope.$apply();
}
};
$scope.getPagedDataAsync = function (pageSize, page, searchText) {
setTimeout(function() {
var data;
if (searchText) {
var ft = searchText.toLowerCase();
$http.get('stats.php').success(function (largeLoad) {
data = largeLoad.filter(function(item) {
return JSON.stringify(item).toLowerCase().indexOf(ft) != -1;
});
$scope.setPagingData(data,page,pageSize);
});
} else {
$http.get('stats.php').success(function (largeLoad) {
$scope.setPagingData(largeLoad,page,pageSize);
});
}
}, 100);
};
$scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage);
$scope.$watch('pagingOptions', function (newVal, oldVal) {
if (newVal !== oldVal && newVal.currentPage !== oldVal.currentPage) {
$scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
}
}, true);
$scope.$watch('filterOptions', function (newVal, oldVal) {
if (newVal !== oldVal) {
$scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
}
}, true);
$scope.gridOptions = {
data: 'myData',
enablePaging: true,
showFooter: true,
totalServerItems: 'totalServerItems',
pagingOptions: $scope.pagingOptions,
filterOptions: $scope.filterOptions,
plugins: [new ngGridFlexibleHeightPlugin()]
};
});
가, 그가 데이터베이스에 저장되어 있습니다. 다음은 내 json 결과입니다.
[{"id":"1","user":"user1","lastlogin":"1402936307","skills":[{"taming":"4","mining":"534","woodcutting":"84","repair":"26","unarmed":"0","herbalism":"108","excavation":"219","archery":"10","swords":"75","axes":"24","acrobatics":"74","fishing":"403","alchemy":"0"}]
} 여기
이 출력 PHP입니다 :
require_once('db.php');
error_reporting(1);
$getUsers = mysqli_query($db, 'SELECT * FROM mcmmo_users LIMIT 300');
$rows = array();
while ($r = mysqli_fetch_assoc($getUsers))
{
$skills = array();
$tempRow = $r;
$getSkills = mysqli_query($db, "SELECT * FROM mcmmo_skills WHERE user_id = '" . $r['id'] . "' LIMIT 300");
while ($r = mysqli_fetch_assoc($getSkills))
{
unset($r['user_id']);
$skills[] = $r;
}
$tempRow['skills'] = $skills;
$rows[] = $tempRow;
}
header('Content-Type: application/json');
echo json_encode($rows);
을 그리고 이것은처럼 내 그리드는 현재 모습입니다 :
이 몇 있습니다 여기에 잘못된 것 :
- id 또는 lastlogin 열이 필요하지 않습니다.
- "사용자"의 이름을 변경하고 싶습니다.
- "스킬"열 대신에 모든 데이터가 자체 열에 있어야합니다. 예를 들어, 길들이기 및 마이닝은 자체 행에 데이터가있는 자체 열입니다.
필자는이 플러그인을 사용하는 방법을 모르지만, 어떤 도움을 주시면 감사하겠습니다!
귀하의 데이터입니까? 그렇다면 원하는대로 JSON을 구현하면 열을 쉽게 나눌 수 있습니다. 숨기기 및 이름 바꾸기에 대해서는 GitHub에서 [API] (https://github.com/angular-ui/ng-grid/wiki/Defining-columns)를 확인하면 짧은 순서로 표시됩니다. '$ scope.gridOptions'의'columnDefs'를보십시오). – adamdc78
네, 그런 식으로 렌더링하는 방법을 이해하지 못하겠습니까? – devs
JSON을받은 후이를 수행하는 방법을 모르겠다. @ adamdc78 – devs