我在角度控制器中有一个grid
列的复选框,我想在其复选框单元格上设置watch
点击,
为此,我使用getSelectedRows()来表示所选单元格的索引数组是否已更改。
这是代码 -
$scope.grid = new Slick.Grid(...)
$scope.$watch('$scope.grid.getSelectedRows()', function(newVal, oldVal){
console.log(arguments);
});
但是当我切换任何此网格复选框时 - 它不会进入观察者功能。
如何让它真正关注我的复选框点击?
答案 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_
})