Angular On点击停止传播事件

时间:2015-09-08 09:28:05

标签: javascript jquery angularjs stoppropagation

如何在我的jQuery代码中调用Angular函数?我试过f

$(document).on('click', '.myBtn', function(e) {
    angular.element($(".someClass")).scope().clearBtnItems();
    e.stopPropagation();
    console.log("stop..prop");
});

但我得到以下错误:

Uncaught TypeError: angular.element(...).scope(...).clearAllResortsOption is not a function

那么,我怎么知道哪个ID绑定到我的控制器?我是AJS的新手,这是我正在修改的现有AJS应用程序。所以我不确定,动态如何注入控制器?

3 个答案:

答案 0 :(得分:1)

以棱角分明的方式做到:

在模板中使用ng-click,而不是使用jQuery click事件。

第二件事:你不需要在角度DOM选择器中包装jQuery,因为angular.element与jQuery $(".someClass")完全相同。

你的例子中scope()是什么?

答案 1 :(得分:0)

问题不在e.stopPropagation();角度选择器中。

angular.element($(".someClass")) // << This is wrong

应该是

angular.element(".someClass")

答案 2 :(得分:0)

write seperate ng-click for both parent and child
<div ng-click = "sm.clearBtnItems()"><div ng-click ="removeBubbling($event)"></div>

 $scope.removeBubbling = function($event){
      // do some code here
      // Prevent bubbling to showItem.
      // On recent browsers, only $event.stopPropagation() is needed
      if ($event.stopPropagation) $event.stopPropagation();
      if ($event.preventDefault) $event.preventDefault();
            $event.cancelBubble = true;
            $event.returnValue = false;
}