【发布时间】:2014-03-01 04:35:50
【问题描述】:
我已将 SlickGrid 与我的 Angular JS 应用程序集成。早些时候,我用普通的硬编码 javascript 代码填充网格数据[见下文]。但现在我需要从 REST 服务获取网格数据,该服务在我的 Angular Js 控制器中调用并保存在对象数组中。如何访问在我的 SlickGrid javascript 代码中的 angular js 中定义的变量 [array]。
我尝试用 Angular js 代码中定义的数组替换下面的“数据”,但它不起作用。任何人都可以在这里帮助我。
$(function () {
/* need to comment out this code once I can use the array defined in angular Js */
var data = [];
for (var i = 0; i < 500; i++) {
data[i] = {
title: "Task " + i,
duration: "5 days",
percentComplete: Math.round(Math.random() * 100),
start: "01/01/2009",
finish: "01/05/2009",
effortDriven: (i % 5 == 0)
};
}
grid = new Slick.Grid("#myGrid", data, columns, options);
})
更新:这是我的 slickgrid 代码。我正在调用 REST 服务来获取 $scope.data1 中的数据,然后使用它来填充 slickgrid,但我得到的是一个空的 slickgrid。但是,如果我对 $scope.data1 中的数据进行硬编码,它就可以工作。我错过了什么?谁能帮帮我吗。我花了一整天的时间来解决这个问题。
$scope.populateGridData = function()
FetchPopulation.get({id:1} , function(response ) {
$scope.data1 = [];
for (var i = 0; i < response.PopulationList.population.length; i++)
$scope.data1[i] = {
firstName: response.PopulationList.population[i].firstName,
lastName: response.PopulationList.population[i].lastName,
designation: response.PopulationList.population[i].designation,
department: response.PopulationList.population[i].department,
salary: response.PopulationList.population[i].salary,
rating: response.PopulationList.population[i].rating,
joiningDate: response.PopulationList.population[i].joiningDate,
employeeId: response.PopulationList.population[i].employeeId,
employeeType: response.PopulationList.population[i].employeeType,
manager: response.PopulationList.population[i].manager,
permanent: (i % 5 == 0),
percentComplete: Math.round(Math.random() * 100)
};
/*
$scope.data1= [{employeeId:"12345", firstName: "aaa", lastName: "bbb" , designation:"Business Analyst" , department:"FSI" ,
salary:"120000",rating:"1" , joiningDate:"12/8/2013" , employeeType:"permanent" , manager:"aaaa" }];
*/
var grid = new Slick.Grid("#myGrid", $scope.data1, $scope.columns, $scope.options);
$scope.grid.setSelectionModel(new Slick.CellSelectionModel());
});
};
【问题讨论】:
-
您的数据是否被填充到控制器 $scope 中?你知道数据必须是有效的 JSON
-
是的,数据是有效的 Json,我正在 $scope.dataAngular 上填充它。如何在 slickgrid 代码中使用这个“dataAngular”?
-
您是否尝试过使用您的角度数据构建 slickgrid 对象...
grid = new Slick.Grid("#myGrid", $scope.dataAngular, columns, options);...您使用的是 SlickGrid DataView 吗? -
是的,我正在做这个 grid = new Slick.Grid("#myGrid", $scope.data1, columns, options);但是我在输出中得到一个空网格。我没有使用 DataView。
-
当我不得不从我的 slickgrid 代码中调用我的 Angular 服务之一时。我必须使用 angular.injector ,我是否需要使用类似于访问 angular 中定义的变量的东西?