2014-09-04 88 views
3

我正在基于角度js的网站上工作。ng-click Vs点击事件

目前,我已经在角度js中编写了大约5000行代码。

所以我必须做一些改动而不用碰我的角度js。

我想是这样的:

$(document).on('click','#buttonid',function(){ 

    //performing some necessary task then call ng-click method 
    ngclickmethod(); 

}); 

HTML代码:

<a ng-click="ngclickmethod()" id="buttonid"> 

请告知我怎么能做到这一点。

非常感谢

+0

您的按钮的单击事件(由angular注册)将被执行,无论角度还只是注册处理程序。在这种情况下,您在冒泡到文档时会得到该事件。所以角度点击处理程序将最有可能被执行。你能提供一些实际的场景吗?无论如何,你只需要做'angular.element(this).scope()。ngclickmethod()' – PSL 2014-09-04 21:47:52

+0

是的,这是我的观点,我想先执行点击事件然后点击ng点击事件。我已经有方法 – webfreaks 2014-09-04 21:51:20

+1

的注册处理程序那么你不应该使用事件委托。您应该直接在元素上注册事件。 http://plnkr.co/edit/O25ZXZCcgZGss7O29ULt?p=preview。因此,基本上你必须将脚本标记保存在你的html上,该标记有这个锚标记并将事件绑定到它。 – PSL 2014-09-04 21:52:12

回答

2

因此,它看起来像你试图调用的角度之外的角度的功能。试试这个..

angular.element(document.getElementById('yourControllerElementID')).scope().ngclickmethod(); 

这会调用你想要的方法。确保控制器元素ID是包含ngclickmethod函数的控制器

+0

Ya ...此代码正在工作......感谢大家参与讨论的内容...... – webfreaks 2014-09-04 22:13:32