UI网格数据未更新

时间:2016-02-16 07:01:31

标签: angularjs angular-ui-grid

我在我的项目中使用ui-grid,对于ui-grid配置我正在设置网格数据,如下所示:

$scope.gridOptions ={

  data : $scope.data,
  columnDef:$scope.couumnDefs

};

我正在这里进行服务呼叫,我正在从DB获取网格,

myService.getData().then(function(data) {
                        var status = data.status;
                        if (status == 0) // success
                        {
                            $scope.data= data.gridData;
                           $scope.columnDef= data.gridCoulmunDef;
                        }
                    }, function(errorMessage) {
                        $scope.error = errorMessage;
                    });

但网格数据没有更新,我想在$ scope.data中做一些修改,但它没有更新,但是这里缺少角度双向数据绑定的主要概念

任何人都可以建议我需要做什么,或者我做错了。

提前致谢!!!!

3 个答案:

答案 0 :(得分:1)

我必须在几个不同的项目中解决这个问题,这种方法对我有用:

  Restangular.all("block_sets/"+<%= params[:id] %> + "/addblock").customPOST(postParams
            ).then(function (data) {
                $scope.gridOptions.data = _.map(data.array, function (d) {
                    return {
                        exampleheader:   d.exampledata,
                        resource:        d
                    };
                });

            }).then(function() {
                $scope.gridApi.grid.modifyRows($scope.gridOptions.data);
                $scope.gridApi.core.refresh();
            });

请注意,我正在使用Restangular和Rails4。诀窍是将应用程序完成到GridOptions中的数据集,然后调用modifyRows()和refresh()。

答案 1 :(得分:0)

尝试使用

   $scope.gridOptions ={

   data : [],
   columnDef:[]

   };
 $scope.data=[];
 $scope.couumnDefs=[];

 myService.getData().then(function(data) {
                    var status = data.status;
                    if (status == 0) // success
                    {
                        $scope.data= data.gridData;
                       $scope.columnDef= data.gridCoulmunDef;
                    }
                }, function(errorMessage) {
                    $scope.error = errorMessage;
                });

 $scope.gridOptions.data=$scope.data;
 $scope.gridOptions.columnDef=$scope.couumnDefs;

希望它对你有用。

答案 2 :(得分:0)

如下所示更新,然后尝试

myService.getData().then(function(data) {
                    var status = data.status;
                    if (status == 0) // success
                    {
                        $scope.data= data.gridData;
                       $scope.columnDef= data.gridCoulmunDef;
                        $scope.gridOptions.data = $scope.data;
                       $scope.gridOptions.columnDef= $scope.columnDef;
                    }
                }, function(errorMessage) {
                    $scope.error = errorMessage;
                });

您需要在调用服务后再次分配coldef和数据。