【问题标题】:Accessing variable defined in slickgrid in AngularJs访问AngularJs中slickgrid中定义的变量
【发布时间】:2014-01-31 15:59:47
【问题描述】:

我在 slickgrid 中定义了一个数组,它捕获使用 OnCellChange 事件在网格中编辑的行。我想在我的 angularjs 控制器中访问这个数组,以便我可以将编辑的行发送到后端。我已经搜索过这个问题,我知道我需要在我的控制器中使用 $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;

    }]);

【问题讨论】:

    标签: angularjs slickgrid


    【解决方案1】:

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

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

    window.editedRows = [];

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

    【讨论】:

    • 非常感谢!!问题是我的变量是在函数范围内定义的。我只是将它移到函数范围之外并且它起作用了。
    • 很抱歉无法为您的答案投票。我没有足够的学分来做这件事。
    猜你喜欢
    • 2014-03-01
    • 2015-06-26
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 2018-05-26
    • 2016-09-13
    相关资源
    最近更新 更多