我在代码中为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: [], 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);

关于angularjs - 如何在ng-grid中使用ExternalSorting,在sortInfo上使用$ watch?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24124204/

10-11 10:58