Angularjs 从服务器更新后刷新ng网格时为空数据

Angularjs 从服务器更新后刷新ng网格时为空数据,angularjs,ng-grid,Angularjs,Ng Grid,我想在编辑或向数据库添加新数据后刷新ng网格的数据。我尝试了本页所述的解决方案。控制台上没有显示错误,表明存在问题。然而,当它触发函数时,我得到的只是ng网格中的一个空白数据,所有以前的数据都不再显示。我错过了什么?我需要你的帮助。提前谢谢 下面是函数 self.fetchDataCenter = function() { setTimeout(function(){ $http({ url:'api/centers',

我想在编辑或向数据库添加新数据后刷新ng网格的数据。我尝试了本页所述的解决方案。控制台上没有显示错误,表明存在问题。然而,当它触发函数时,我得到的只是ng网格中的一个空白数据,所有以前的数据都不再显示。我错过了什么?我需要你的帮助。提前谢谢

下面是函数

self.fetchDataCenter = function() { setTimeout(function(){ $http({ url:'api/centers', type:'GET'}) .success(function(dCenter) { $scope.centers = dCenter; if (!$scope.$$phase) { $scope.$apply(); } }); }, 3000); }; $scope.mySelectionsCenters = []; $scope.gridCenters = { data: 'centers', filterOptions: $scope.filterOptionsCenters, selectedItems: $scope.mySelectionsCenters, afterSelectionChange: function() { $scope.itemsCC = $scope.mySelectionsCenters; }, multiSelect: false, columnDefs: [{field:'cost_center', displayName:'Cost Center'}] }; self.fetchDataCenter=函数(){ setTimeout(函数(){ $http({ url:'api/中心', 类型:'GET'}) .成功(功能(dCenter){ $scope.centers=dCenter; 如果(!$scope.$$phase){ $scope.$apply(); } }); }, 3000); }; $scope.mySelectionsCenter=[]; $scope.gridCenters={data:'centers', filterOptions:$scope.filterOptions中心, selectedItems:$scope.mySelectionsCenter, afterSelectionChange:函数(){ $scope.itemsCC=$scope.mySelectionsCenter; }, 多选:错, columnDefs:[{字段:'cost_center',显示名称:'cost center'}] };
经过3天的研究和测试,我终于能够让它工作了。我得到的一些示例要么已经过时,因此导致错误被抛出控制台。这种方法在我使用ng网格的场景中有效

我把这个功能放在控制器上

$scope.refresh = function () {
    setTimeout(function(){  
        $http({
            url:'api/centers',
            method:'GET'})
            .success(function(data) {
                $scope.centers = data;
            });                           
    }, 100); 
};  
然后我必须调用函数,用数据填充ng网格

$scope.refresh();
如果要在对数据库进行更新后调用refresh函数从模式中刷新网格,则必须首先在模式配置中通过添加

scope: $scope
下面是作用域为:$scope的模式脚本

$scope.openAddCenter = function (input) {
    $scope.input = input;
    var modalAddCenter = $modal.open({
      templateUrl: 'myModalAddCenter.html',
      controller: ModalAddCenterCtrl,
      scope: $scope,
      resolve: {
        '$modalAddCenter': function() { 
          return function() { 
            return modalAddCenter; } 
            },
        input: function() {
          return $scope.input;
            }
        }
    });
然后,在对数据库进行必要的更新之后,在模态控制器上只需放置$scope.refresh()。这将触发重新加载数据,并使用显示的新数据重新填充ng网格

我希望这能帮助新手,节省他们宝贵的时间