javascript - “中央”删除前确认或JS中的多个版本

标签 javascript html angularjs

我正在尝试向当前的删除功能添加功能。我遇到的问题是,当我单击“删除”时,它会立即删除而不提示。我一直在尝试使用 this question 中的答案添加提示功能.

我的问题是哪种是实现删除功能最有效的方法,目前我有4个可以删除的实例,它们都有类似这样的代码:

function removeDoom(doom) {
        doomResource.delete({ id: doom.doomId })
            .$promise
            .then(function (response) {
                if (response.success) {
                    logger.success("Doom has been Removed", "Success");
                    $state.go("dashboard.doomPage");
                    getDooms();
                }
                else if (!response.success) {
                    logger.error("Error", response.message);
                }
            })
            .catch(function (response) {
                vm.error = exception.catcher("Error", response);
            });
    }

实现可供所有 4 个实例使用的删除函数是否比在 .js 文件中使用单独的删除函数更好?如果我实现了“中央”删除功能,这对我使用以下按钮的 HTML 端有何影响?

<a class="btn btn-primary btn-xs glyphicon glyphicon-remove" bs-tooltip="{'title':'Remove Doom'}" ng-click="vm.removeDoom(doom)"></a>

我实现了 4 个实例的原因是对于其中一些实例,它检查是否有任何依赖项链接到该实例,如果为 true,则不会删除,但首先会抛出一个错误,指出“实例正在被使用”一个应用程序,无法删除。”是否可以实现一个包含规则的解决方案来考虑这一点?

最佳答案

为了实现“中央”删除功能,您必须创建一项服务,例如

(function() {
  angular.module('module name')
  .service('serviceName', serviceName);

  function serviceName (
     dependency which you wanted for function like $state
    ) {
    this.removeDoom = removeDoom;

    function removeDoom(doom) {
        doomResource.delete({ id: doom.doomId })
            .$promise
            .then(function (response) {
                if (response.success) {
                    logger.success("Doom has been Removed", "Success");
                    $state.go("dashboard.doomPage");
                    getDooms();
                }
                else if (!response.success) {
                    logger.error("Error", response.message);
                }
            })
            .catch(function (response) {
                error = exception.catcher("Error", response);
            });
    }
  }
})();

为了实现提示,请使用uib模式引用https://angular-ui.github.io/bootstrap/ .

并在回调函数中写下这个

doomResource.delete({ id: doom.doomId })
            .$promise
            .then(function (response) {
                if (response.success) {
                    logger.success("Doom has been Removed", "Success");
                    $state.go("dashboard.doomPage");
                    getDooms();
                }
                else if (!response.success) {
                    logger.error("Error", response.message);
                }
            })
            .catch(function (response) {
                error = exception.catcher("Error", response);
            });

不过,如果您有任何疑问,您可以明确询问。

关于javascript - “中央”删除前确认或JS中的多个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44324722/

相关文章:

javascript - 如何在没有后视的情况下匹配 '+abc' 而不是 '++abc'?

php - 如何保存网页状态(动态添加内容),以便下次重新加载

javascript - Angular-bootstrap 分页给出未定义的函数错误

json - Angular $http.get 到本地主机,总是在浏览器中返回 404. 200

javascript - 必需的 `<select>` 输入错误地允许选择默认选项

javascript - 获取 DOM 元素流入位置

javascript - 如何从 objective-c 方法调用我的 phonegap ios 应用程序中的 javascript 函数?

javascript - 为什么 HTML5 checkValidity() 返回的结果与 JavaScript regexp.test() 不同?

html - 如何使 div 视口(viewport)高度,而不是 CSS 中的页面高度?

javascript - 使用 HTML slider 元​​素传递变量 ondrag