所以我有一些我无法控制的HTML。
<div id="myDiv">
Stuff inside my div...
</div>
我想为它添加一个ngClick。如果我可以控制html,我就会这样做
<div id="myDiv" ng-click="doSomething()">
Stuff inside my div...
</div>
但就像我说的那样,我无法改变HTML。如果这是jQuery,我会做
$('#myDiv').click(function(){
doSomething();
});
我如何在Angularjs中执行此操作?感谢。
更新
从支持者的角度来看,似乎你们对我在这里要做的事情感到不满意,所以让我解释一下。
我在我的应用中使用AngularUI。 AngularUI具有插入的所有这些模板。例如
<accordion-heading></accordion-heading>
变为
<div class="panel-heading">
<h4 class="panel-title">
<a href="" class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading">
<span class="ng-binding ng-scope">Heading</span>
</a>
</h4>
</div>
我想将ngClick添加到&#34; panel-title&#34;。我可以覆盖模板并添加它,但我不想这样做。来自jQuery,只需在&#34; panel-title&#34;上听一个点击事件就有意义了。怎么做Angular?感谢。
答案 0 :(得分:5)
您需要找到元素,如:angular.element(//selector here);
然后添加您需要的属性(ng-click),.attr('ng-click', '//whatever should be here')
,然后使用角度$compile
进行编译。
但是。我很难过你必须这样做,我希望你能找到改变html的可能性。