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

如何使用angularjs在ng-click中触发另一个元素的click事件?

公西星文
2023-03-14
问题内容

我正在尝试从触发<input type="file">元素的click事件button

<input id="upload"
    type="file"
    ng-file-select="onFileSelect($files)"
    style="display: none;">

<button type="button"
    ng-click="angular.element('#upload').trigger('click');">Upload</button>

通常的做法是隐藏被称为丑化的野兽,<input type=file>并通过其他方式触发其点击事件。


问题答案:

如果您的输入和按钮是同级(在您的情况下是OP):

<input id="upload"
    type="file"
    ng-file-select="onFileSelect($files)"
    style="display: none;">

<button type="button" uploadfile>Upload</button>

使用指令将按钮的单击绑定到文件输入,如下所示:

app.directive('uploadfile', function () {
    return {
      restrict: 'A',
      link: function(scope, element) {

        element.bind('click', function(e) {
            angular.element(e.target).siblings('#upload').trigger('click');
        });
      }
    };
});


 类似资料:
  • 问题内容: 我使用的是ng-click,将其应用于SPAN标签时会触发两次。 HTML 控制器 它应该只发射一次。我如何找到这种情况的发生原因以及如何解决? 问题答案: 您提供的代码不会两次触发该事件: http://jsfiddle.net/kNL6E/(单击) 也许您两次包含Angular?如果执行此操作,则会收到两个警报,如下所示: http://jsfiddle.net/kNL6E/1/

  • 问题内容: 我正在尝试在应用程序中使用AngularJS,并在某种程度上取得了成功。 我能够获取数据并将其显示给用户。我有一个按钮,我想通过该按钮发布DELETE请求。下面是我的代码。 这是获取信息并将其显示给用户的功能。 数据已获取并正确显示。 但是,单击删除按钮后,不会触发其中的代码。在GoogleChrome浏览器的开发人员工具中,我可以看到为代码生成了有效值,但未触发代码。从我尝试去掉花括

  • 问题内容: 我一直在寻找使用AngularJS进行单事件和双击事件的处理,因为AngularJS始终仅触发ng-click事件,即使为元素设置了ng- dblclick指令也是如此。 这是一些寻求解决方案的工作代码: JS: HTML: 所以我的问题是(因为我是AngularJS新手):经验丰富的人可以写一些不错的指令来处理这两个事件吗? 我认为,理想的方法是更改​​ng-click,ng-dbl

  • 问题内容: 这可能是一个奇怪的情况,以前没有人曾经历过,但是我是偶然地发布此消息,因为有人知道我不知道的东西。 我正在使用jQuery 2.0.3和AngularJS。 如果我有这样的锚点: 然后它起作用了,当我单击它时,它输出“ click”。但是,当我将其放入包含该属性的模板中时,jQuery突然无法启动。如果我将脚本和锚点放在模板内部,则确实会触发。 使用使用模板的指令也是如此。这很奇怪,并

  • 我已经在我的网站上设置了GTM,我有一个在以下条件下触发的触发器 触发器的GTM条件 当我测试标签时,它不会启动。我检查了元素的值为 那么,当我使用regex或contains操作符时,为什么GTM不起作用呢。还有其他人面临过这个问题吗? 此页上几乎没有触发器(https://luminaryproperties.co.uk/venturing-into-your-first-off-plan/?

  • 问题内容: 是否可以为ng-click编写拦截器?我有一个按钮或链接,导致后端对象的删除。我想通过将属性添加到按钮/链接来创建一个确认对话框(模式)。例如: AngularJS有可能吗?有没有更好的方法可以解决此问题? 编辑 deleteIt方法驻留在不同的控制器中。 谢谢 问题答案: 我在下面放了一个示例指令: http://plnkr.co/edit/GJwK7ldGa9LY90bMuOfl?