.stopPropagation()在由Angular指令生成的链接上进行转换

时间:2014-02-18 18:51:59

标签: javascript angularjs

我正在制作一个指令,通过翻译将链接添加到DIV。现在我想在点击链接时执行一些功能,而不是去我所包含的虚拟href(例如google.com),例如......

.directive('deleteDiv', function () {
        return {
            restrict: 'A',
            transclude: true,
            template: '<a href="http://www.google.com" ng-click="removeDiv()">X</a> ',
            link: function (scope, elem) {
                // now we don't want the link to go to the href!
                scope.removeDiv = function(e){
                    e.stopPropagation();
                    console.log(elem); // but we do more things later....
                }
            }
        }
    })

当我点击该链接时,我们会收到错误,因为e未知且href将我们发送给谷歌。即使我向return false;方法添加removeDiv或为e更改event,我们仍然会被发送到href位置。关于我如何使这项工作的任何想法(可能需要一个很好的解释)

1 个答案:

答案 0 :(得分:0)

仅使用ng-click代替href,然后按照提及的方式调用$event.stopPropagation(); here