从服务器更新后刷新 ng-grid 时出现空白数据
Posted
技术标签:
【中文标题】从服务器更新后刷新 ng-grid 时出现空白数据【英文标题】:Blank data when refreshing ng-grid after update from server 【发布时间】:2014-03-31 19:48:22 【问题描述】:我想在编辑后刷新 ng-grid 的数据或向数据库添加新数据。我尝试了本页 https://github.com/angular-ui/ng-grid/issues/39 中提出的解决方案。控制台上没有显示任何错误,表明存在问题。但是,当它触发该功能时,我得到的只是来自 ng-grid 的空白数据,并且不再显示所有以前的数据。我错过了什么?需要你的帮助。提前致谢。
这里是函数
self.fetchDataCenter = function() 设置超时(函数() $http( url:'api/centers', 类型:'GET') .成功(功能(dCenter) $scope.centers = dCenter; if (!$scope.$$phase) $scope.$apply(); ); , 3000); ; $scope.mySelectionsCenters = []; $scope.gridCenters = 数据:'中心', filterOptions: $scope.filterOptionsCenters, selectedItems:$scope.mySelectionsCenters, afterSelectionChange:函数() $scope.itemsCC = $scope.mySelectionsCenters; , 多选:假, columnDefs: [field:'cost_center', displayName:'Cost Center'] ;【问题讨论】:
【参考方案1】:经过 3 天的研究和测试,我终于能够让它工作。我得到的一些示例要么已经过时,因此导致错误被抛出控制台。这种方法适用于我使用 ng-grid 的场景。
我把这个功能放在控制器本身上。
$scope.refresh = function ()
setTimeout(function()
$http(
url:'api/centers',
method:'GET')
.success(function(data)
$scope.centers = data;
);
, 100);
;
然后我必须调用函数来用数据填充 ng-grid。
$scope.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-grid。
我希望这将帮助新手并节省他们宝贵的时间。
【讨论】:
以上是关于从服务器更新后刷新 ng-grid 时出现空白数据的主要内容,如果未能解决你的问题,请参考以下文章