我在slickgrid中定义了一个数组,它使用OnCellChange事件捕获在网格中编辑的行。我想在angularjs Controller中访问这个数组,以便我可以将编辑过的行发送到后端。我已经搜索过这个问题了,我知道我需要在我的控制器中使用$ window来访问全局js变量。但这对我不起作用。 我读过这个 How to access global js variable in AngularJS directive和此http://code.angularjs.org/1.1.5/docs/api/ng.$window
事实上,在第二个链接(上图)中,很多人评论说这对他们来说也不起作用。谁能告诉我我错过了什么?
Slick_grid.js
var editedRows = [];
grid.onCellChange.subscribe(function(e , args){
var item = args.item;
for( i=0;i<editedRows.length; i++)
{
if(item.employeeId == editedRows[i].employeeId)
{
editedRows.splice(i , 1 , item);
return;
}
else
{
editedRows.push(item);
return;
}
}
});
controller.js
myApp.controller('SubmitController' ,
['$scope' ,'$window', function($scope , $window) {
alert($window.editedRows);
$scope.editedRows = $window.editedRows;
}]);
答案 0 :(得分:0)
我认为editedRows
可能已在函数范围(javascript)中定义,因此无法在外部访问。
如果editedRows是您自己的变量,您可以尝试
window.editedRows = [];
虽然不是一个好的解决方案。