我的代码中的ng-grid有以下设置:
$scope.gridOptions = { ... useExternalSorting : false,} $scope.watch('gridOptions.ngGrid.config.sortInfo',function (oldValue,newValue) { console.log(newValue) })
我也尝试使用sortInfo:undefined和$watch(gridOptions.sortInfo).这似乎仅在网格最初加载时起作用.之后,当我点击标题列时,它似乎没有进入$watch的回调函数.我尝试在回调函数中放置一个调试器来触发排序,我可以看到代码用正确的信息更新sortInfo数组,但是它似乎没有进入watch语句的回调函数.我的设置有什么不对吗?我有一个类似于我想要的东西的Plunker here.
解决方法
我有同样的问题.我想进行自己的服务器端排序,但仍然使用单击列标题时更新的sortInfo对象.在查看控制台中的一些错误之后,我发现我必须像这样设置一个默认的sortInfo:
$scope.gridOptions = {
…
sortInfo:{fields:[],columns:[],direction:[]},
useExternalSorting:true
}
我不确定为什么列字段是必要的,它与文档不匹配.我正在使用AngularJS v1.2.19和ng-grid v2.0.11.不确定为什么你将useExternalSorting设置为false,但无论哪种方式,你现在应该能够像这样在该字段上设置监视:
$scope.$watch(‘gridOptions.sortInfo’,function(newVal,oldVal){ 的console.log(的newval);,真实);