关注getSelectedRows()

时间:2015-01-06 13:40:39

标签: javascript angularjs slickgrid

我在角度控制器中有一个grid列的复选框,我想在其复选框单元格上设置watch点击,

为此,我使用getSelectedRows()来表示所选单元格的索引数组是否已更改。

这是代码 -

$scope.grid = new Slick.Grid(...)
$scope.$watch('$scope.grid.getSelectedRows()', function(newVal, oldVal){
     console.log(arguments);
});

但是当我切换任何此网格复选框时 - 它不会进入观察者功能。

如何让它真正关注我的复选框点击?

2 个答案:

答案 0 :(得分:0)

这是正确的方式

 $scope.$watch(funstion(){ return $scope.grid.getSelectedRows() }, function(newVal, oldVal){

    console.log(arguments);
 });

然而由于角度的消化周期而变得迟到。您可以在setTimeout函数中检查正确的值

$scope.$watch(funstion(){ return $scope.grid.getSelectedRows() }, function(newVal, oldVal){

    setTimeout(function(){
      var row = $scope.grid.getSelectedRows();
      //do your staff here
    },0)
 });

答案 1 :(得分:0)

可能它会更适合

grid.onSelectedRowsChanged.subscribe(function(e, args){
    $scope.$emit('selectedRowsChanged', *someData*);
});

$scope.$on('selectedRowsChanged', function(*someData*){
    _do your stuff here_
})