访问AngularJs中slickgrid中定义的变量

时间:2014-01-31 15:59:47

标签: angularjs slickgrid

我在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;

    }]);

1 个答案:

答案 0 :(得分:0)

我认为editedRows可能已在函数范围(javascript)中定义,因此无法在外部访问。

如果editedRows是您自己的变量,您可以尝试

window.editedRows = [];

虽然不是一个好的解决方案。