Javascript 角网格数据表示
我刚接触Angular,我对Javascript的经验不是很丰富。我无法使用以下代码在ngGrid中显示数据。有什么问题 本质上。我正在从web服务加载数据,对其执行转换透视,然后我希望将其显示在网格中 请参见以下内容 app.js->开始点Javascript 角网格数据表示,javascript,angularjs,ng-grid,plunker,Javascript,Angularjs,Ng Grid,Plunker,我刚接触Angular,我对Javascript的经验不是很丰富。我无法使用以下代码在ngGrid中显示数据。有什么问题 本质上。我正在从web服务加载数据,对其执行转换透视,然后我希望将其显示在网格中 请参见以下内容 app.js->开始点 var konstruktApp= angular.module('konstruktApp',['ngGrid']); dataService.js->web服务调用 'use strict'; konstruktApp.service('Data
var konstruktApp= angular.module('konstruktApp',['ngGrid']);
dataService.js->web服务调用
'use strict';
konstruktApp.service('DataService',function DataService($http){
var callHttp = function(){
delete $http.defaults.headers.common['X-Requested-With'];
return $http.get("http://83.250.197.214/konstrukt.service/Konstrukt.SL.DummyBudgetService.svc/GetDummyBudgetData/");
};
return {
getDummyData: callHttp
};
});
ngGridController.js->逻辑所在的位置
$scope.getData = DataService.getDummyData;
$scope.gridOptions = {data:'result'};
var getData = function() {
$scope.getData().then(function (response) {
var res = pivotData(response.data);
$scope.result = res.data.PivotedRows;
$scope.columns = res.cols;
console.log('from the success handler at ' + new Date());
}, function (reason) {
console.log('failed: ');
console.log(reason);
});
};
…这是数据透视的逻辑
var pivotData = function(data) {
var firstColumn = "Dim1";
var secondColumn = "Period";
var columns = [];
columns.push({
field: firstColumn,
enableCellEdit: false
});
var pivotedArray = {};
pivotedArray.PivotedRows = [];
var rowItems = [];
var rowArray = {};
var previusFirstColumnValue = -1;
var firstColumnValue = 1;
//for each row
for (var i = 0; i < data.Rows.length; i = i + 1) {
//firstColumnValue = $scope.dataCollection.Rows[i].FindCell.Cells[firstColumn].Value;
firstColumnValue = findCell(data.Rows[i].Cells, firstColumn).Value;
//var secondColumnValue = data.Rows[i].Cells[secondColumn].Value;
var secondColumnValue = findCell(data.Rows[i].Cells, secondColumn).Value;
//if first column value has changed, add new row
if (firstColumnValue != previusFirstColumnValue) {
if (i !== 0) {
for (var j = 0; j < rowItems.length; j = j + 1) {
rowArray[rowItems[j].name] = rowItems[j].value;
}
pivotedArray.PivotedRows.push( rowArray);
rowArray = {};
rowItems = [];
}
rowItems.push({
name: firstColumn,
//value: $scope.dataCollection.Rows[i].Cells[firstColumn].Value
value: findCell(data.Rows[i].Cells, firstColumn).Value
});
}
//if (columns.indexOf({field: secondColumnValue}) == -1) {
if (i < 12) {
columns.push({
field: secondColumnValue,
editableCellTemplate: "<input ng-class=\"'colt' + col.index\" ng-input=\"COL_FIELD\" ng-blur=\"lostFocus()\" ng-model=\"COL_FIELD\" ng-change=\"dataChanged(col,row,row.entity)\"/>",
enableCellEdit: true
});
}
rowItems.push({
name: secondColumnValue,
value: findCell(data.Rows[i].Cells, secondColumn).Value
});
previusFirstColumnValue = firstColumnValue;
}
for (var k = 0; k < rowItems.length; k = k + 1) {
rowArray[rowItems[k].name] = rowItems[k].value;
}
// $scope.columns = columns;
pivotedArray.PivotedRows.push( rowArray);
return {data: pivotedArray, cols: columns};
};
plnkr:
编辑:数据关联行列是正确的,我怀疑pivotedArray.PivotedRows数组中的数据有问题。结果是,将代码移动到新的plnkr导致了差异。现在,这是我生命中的几个小时,我想要回来:首先,你得到数据了吗?你有没有试着看看你从Fiddlerhi那里得到了什么?是的,我得到了数据。看起来不错。我在chrome中调试了plnkr代码,并验证了。。。所以在转换过程中出现了一些问题,但是我正确地转换了数据,但是可能我的一些数据类型不适合与ngGrid一起使用!?修正了你的plnkr数据现在显示这不是我的日子。改用。显然,我也必须分叉…我把代码移到了一个新的plnkr,然后它工作了。。。