在'afterCellEdit'事件中承诺后,我无法第二次编辑单元格

时间:2015-10-24 06:09:51

标签: angularjs angular-ui-grid

查看我的plunkr

$scope.gridOptions.onRegisterApi = function (gridApi) {
        $scope.gridOptionsApi = gridApi;
        var deferred = $q.defer();

        $scope.gridOptionsApi.edit.on.afterCellEdit($scope, function (rowEntity, colDef, newValue, oldValue) {
            $scope.gridOptionsApi.rowEdit.setSavePromise(rowEntity, deferred.promise);
            //Making my operations here
            setTimeout(function () {
            if(true)
            {
              console.log('sdg');
              deferred.resolve();
            }
            else{
              deferred.reject();
            }
            }, 3000, 1);
        });
     }

我在$scope.gridOptionsApi.edit.on.afterCellEdit()事件中进行单元格编辑后进行了一些操作 我在这里设置setSavePromise,但在该行之后不再可编辑...

我想第二次编辑行...

请参阅我的plunkr以获得更好的理解

1 个答案:

答案 0 :(得分:0)

您需要从函数$ scope.gridOptions.onRegisterApi

返回deffered promise

代码:

$scope.gridOptions.onRegisterApi = function (gridApi) {
        $scope.gridOptionsApi = gridApi;
        var deferred = $q.defer();

        $scope.gridOptionsApi.edit.on.afterCellEdit($scope, function (rowEntity, colDef, newValue, oldValue) {
            $scope.gridOptionsApi.rowEdit.setSavePromise(rowEntity, deferred.promise);
            //Making my operations here
            setTimeout(function () {
            if(true)
            {
              console.log('sdg');
              deferred.resolve();
            }
            else{
              deferred.reject();
            }
            }, 3000, 1);
        });
        return deffered.promise;
     }

Updated Plunkr