当前位置: 首页 > 面试题库 >

在angularJS中拦截ng-click

臧彭亮
2023-03-14
问题内容

是否可以为ng-click编写拦截器?我有一个按钮或链接,导致后端对象的删除。我想通过将属性添加到按钮/链接来创建一个确认对话框(模式)。例如:

<a href="#" ng-click="deleteIt(id)" confirmation-needed>Delete</a>

AngularJS有可能吗?有没有更好的方法可以解决此问题?

编辑 deleteIt方法驻留在不同的控制器中。

谢谢


问题答案:

我在下面放了一个示例指令:

http://plnkr.co/edit/GJwK7ldGa9LY90bMuOfl?p=preview

我通过创建一个指令来实现它:

  1. 具有较高的priorityngClick,所以它被称为前ngClick
  2. 使它terminal不会调用ngClick
  3. 监听点击事件,然后评估ngClick该消息(如果消息正常)的值。

作为奖励,您可以传递自己的消息,例如:

<a href="#" ng-click="deleteIt(id)" 
    confirmation-needed="Really Delete?"
        >Delete with custom message</a>

代码如下:

app.directive('confirmationNeeded', function () {
  return {
    priority: 1,
    terminal: true,
    link: function (scope, element, attr) {
      var msg = attr.confirmationNeeded || "Are you sure?";
      var clickAction = attr.ngClick;
      element.bind('click',function () {
        if ( window.confirm(msg) ) {
          scope.$eval(clickAction)
        }
      });
    }
  };
});

希望有帮助。



 类似资料:
  • 问题内容: 我在使用TypeScript在AngularJS中设置请求拦截器时遇到问题 以下代码段有效,但无效版本已注释掉。无论我在构造函数中注入什么,局部变量在方法中都是未定义的。 问题答案: 是因为错误。解:

  • 本文向大家介绍详解AngularJS中的http拦截,包括了详解AngularJS中的http拦截的使用技巧和注意事项,需要的朋友参考一下 http拦截,即$http服务允许我们与服务端交互,有时候我们希望在发出请求之前以及收到响应之后做些事情。 $httpProvider包含了一个interceptors的数组。 我们这样创建一个interceptor。 接着注册interceptor.  以下

  • 问题内容: 我对角度(和编程)不熟悉,这是一个看似简单的问题,但我无法弄清楚。 一些教程建议使用操纵http请求和响应。 我想知道更多关于拦截的事情,所以我看的正式文件,但我找不到,只有一个方法(useApplyAsync([值]);)与拦截任何东西,在一个属性(默认)(文档)。 我从其他教程中知道拦截器是常规服务工厂,并且知道如何使用它,但是我的问题是:由于语法是,所以我希望在中找到一个名为“

  • 本文向大家介绍AngularJS中的拦截器实例详解,包括了AngularJS中的拦截器实例详解的使用技巧和注意事项,需要的朋友参考一下 AngularJS中的拦截器实例详解 异步操作 有时候需要在拦截器中做一些异步操作。幸运的是, AngularJS 允许我们返回一个 promise 延后处理。它将会在请求拦截器中延迟发送请求或者在响应拦截器中推迟响应。 下面是项目中用到的代码。 感谢阅读,希望能

  • 问题内容: 我似乎无法让$ httpProvider.interceptors实际进行拦截。我在JSFiddle上创建了一个示例,该示例记录了拦截器运行的时间以及$ http响应成功的时间。在成功返回响应之后,将运行请求拦截器。这似乎有些倒退。 我不能使用transformRequest,因为我需要更改配置中的参数。该部分未显示在示例中。 我正在使用AngularJS 1.1.5 http://j

  • 问题内容: 我有一个使用AngularJS和服务器端后端构建的应用程序,该后端以JSON形式传递所有请求。每个请求都包装在一个JSON容器中,该容器包含一个数据变量,该变量包含特定于该请求的数据。其他数据用于保持应用程序内的状态和控制,检查错误和成功消息以及检查会话标志。所有其他变量都随EVERY请求一起提供,并且在数据变量之前先进行检查。 现在,我有一种方法可以先检查JSON响应的内容,然后再检