如何在ng-grid中使用ExternalSorting,在sortInfo上使用$ watch?

Dee*_*pak 5 angularjs angularjs-scope ng-grid angular-ui-grid

我的代码中的ng-grid有以下设置:

$scope.gridOptions = {
    ...
    useExternalSorting : false,
}

$scope.watch('gridOptions.ngGrid.config.sortInfo', function (oldValue, newValue) {
    console.log(newValue)
})
Run Code Online (Sandbox Code Playgroud)

我也试过用sortInfo : undefined$watch(gridOptions.sortInfo).这似乎仅在网格最初加载时起作用.之后,当我点击标题列时,它似乎没有进入回调函数$watch.我尝试在回调函数中放置一个调试器来触发排序,我可以看到代码用正确的信息更新sortInfo数组,但是它似乎没有进入watch语句的回调函数.我的设置有什么不对吗?我在这里有一个类似于我正在尝试的东西.

reg*_*ike 6

我有同样的问题.我想进行自己的服务器端排序,但仍然使用sortInfo单击列标题时更新的对象.在查看控制台中的一些错误后,我发现我必须sortInfo像这样设置一个默认值:

$scope.gridOptions = { ... sortInfo: { fields: [], columns: [], directions: [] }, useExternalSorting: true }

我不确定为什么该columns字段是必要的,它与文档不匹配.我正在使用AngularJS v1.2.19和ng-grid v2.0.11.不确定为什么你已经useExternalSorting设置,false但无论哪种方式,你现在应该能够像这样在该字段上设置监视:

$scope.$watch('gridOptions.sortInfo', function (newVal, oldVal) { console.log(newVal); }, true);