javascript - 如何在事件不是参数的函数中添加preventDefault

标签 javascript angularjs

这是我的 angularjs 应用程序的 html 部分:

<a href="https://www.youtube.com/watch?v=cRa8VRM5d5c" ng-click="createTab('https://www.youtube.com/watch?v=cRa8VRM5d5c');" title="youtube">youtube</a>

在 Controller 中:

$rootScope.createTab = function(url) {
    if (isExtension !== undefined) {
        chrome.tabs.create({url: (url)});
    } else {
        e.preventDefault();
        window.open(url,'_blank');
    }
}

如何添加preventDefault的支持? 'e' 未定义,但我需要 'e' ,并且我已经有一个要传递的参数...它是一个 chrome 应用程序,但也可以像迷你网站一样使用。我希望在新选项卡中打开链接,即使我们不在 Chrome 上。

最佳答案

您可以传入$event from the markup并在您的处理程序中使用它。

ng-click="createTab('https://www.youtube.com/watch?v=cRa8VRM5d5c', $event);"

还有

$rootScope.createTab = function(url, event) {
    event.preventDefault();
    if (isExtension !== undefined) {
        chrome.tabs.create({url: (url)});
    } else {
        e.preventDefault();
        window.open(url,'_blank');
    }
}

$event - Directives like ngClick and ngFocus expose a $event object within the scope of that expression.

关于javascript - 如何在事件不是参数的函数中添加preventDefault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25558812/

相关文章:

javascript - 单击链接时将 AngularJS $scope 变量传递给新 Controller

Javascript 关联数组简写在 IE 中不起作用

javascript - 仅在悬停时触发基础下拉菜单

javascript - SoundCloud:使用 Javascript 搜索和显示结果

javascript - 如何在 Angular.js 中正确配置提供者服务

javascript - 从 typescript 中的数据填充列中的索引值(Angular/React)

angularjs - 基于元素属性插值的指令中的动态 templateUrl

javascript - 使用 PEG.js 解析缩进级别

javascript - knockout 事件触发两次

javascript - 调用不带元素的 Angular Directive(指令)