ng-grid与底层数据失去同步

时间:2013-09-19 19:13:31

标签: ng-grid

我正在从jQeuryUI弹出窗体更新一行网格数据。在使用Ajax更新的服务器端数据库之后,我更新了数据数组中的数据行。但网格仍保持不变。似乎arry和网格失去了同步。

           $.ajax({
                type: "PUT",
                url: "/api/WebAPIAdminStaff",
                data: $('#editForm').serialize(),
                success: function (result) {
                    if (result) {
                        var scope = angular.element($("#ngBody")).scope();
                        var row = scope.gridOptions.selectedItems[0];
                        var index = scope.myData.indexOf(row);
                        scope.$apply(function () {
                            scope.myData[index].FirstName = paramFromView.FirstName;
                        });
                    }
                }
            });

这段代码有什么问题吗?真的需要它的工作!非常感谢!

1 个答案:

答案 0 :(得分:0)

我最终必须删除该行并再次使用更新的数据添加新行。

            $.ajax({
                type: "PUT",
                url: "/api/WebAPIAdminStaff",
                data: $('#editForm').serialize(),
                success: function (result) {
                    if (result) {
                        var scope = angular.element($("#ngBody")).scope();
                        var row = scope.gridOptions.selectedItems[0];
                        var index = scope.myData.indexOf(row);
                        scope.gridOptions.selectItem(index, false);
                        scope.$apply(function () {
                            scope.myData.splice(index, 1);
                        });
                        scope.$apply(function () {
                            scope.myData.splice(index, 0, result);
                        });
                        setTimeout(selectARow, 0); 
                        function selectARow() {
                            scope.$apply(function () {
                                scope.gridOptions.selectItem(index, true);
                            });
                        };
                    }
                }
            });