Angular xeditable - 如果服务器返回400,如何保持编辑模式打开

时间:2017-05-10 08:21:19

标签: angularjs angular-xeditable

如果服务器响应错误,如何保持打开编辑模式? 现在,当我单击提交并将数据发送到API时,我的表单会自动关闭,但我希望仅在服务器响应成功时关闭编辑模式,并且如果响应有错误则保持打开状态。谢谢

<form editable-form name="tableform" onaftersave="saveTableConfig()" oncancel="cancel()">
<span editable-textarea="currentKlupa.description" e-name="description" e-
rows="3">Text</span>
</form>

$scope.saveTableConfig = function () {
        var config = {
            headers: {
                'Content-Type': 'application/xml',
                'X-HTTP-Method-Override': 'PUT'
            }
        };

        var configCopy = angular.copy($scope.currentConfig);

        $http.post(serviceBase + 'cd/saa/' + $stateParams.aaaID + '/config', configCopy, config)
                .success(function (data, status, headers, config) {
                    Notification.success({message: $filter('translate')('BENCH_EDITED_SUCCESSFULLY'), delay: 3000, positionY: 'bottom', positionX: 'right'});
                })
                .error(function (data, status, header, config) {
                    Notification.error({message: $filter('translate')('BENCH_EDITED_ERROR'), positionY: 'bottom', positionX: 'right'});
                });

    };

1 个答案:

答案 0 :(得分:0)

如果有人需要帮助,我会解决此问题。 Thnx to @ckosloski(github)。

  

您需要在onaftersave方法中返回一个字符串值:

     

如果您需要在写入本地模型后在服务器上发送数据,那么您应该定义表格onaftersave。   表格onaftersave的结果对下一步也很重要:

     

字符串:表单不会关闭(例如服务器错误)   不是字符串:表格将被关闭

这是我的ctrl

 $scope.saveTableConfig = function () {
        var config = {
            headers: {
                'Content-Type': 'application/xml',
                'X-HTTP-Method-Override': 'PUT'
            }
        };

        var configA = angular.copy($scope.currentConfig);

        return $http.post(serviceBase + 'nnnn/config', configA, config)
                .then(function (response) {
                  //your code
                })
                .catch(function (error) {
                    //your code
               return 'return string';
            });
    };