发现了一些接近的问题,但不完全是我需要提出的问题。
我有多个带有ng-click事件的元素。 对于大多数(特定类别),我不需要在点击后实际运行角度消化周期。点击这些元素的结果不会影响任何范围变量(例如,他们只是打印出一个console.log)。
我想要做的是有条件地对ngClick做出反应,其中说某个特定css类的元素最后没有自动$ apply。
编辑:
我最终做的是用相应的javascript替换替换ng-click,ng-mouseenter和ng-mouseleave。
我这样做有两个原因: 1.我实际上并没有影响这些点击的范围变量,因此我不需要在每次点击后运行摘要(我有鼠标,所以你可以成像,无缘无故地产生大量的摘要周期)。 2.这是我在另一个源(ng-bind)的页面加载序列中加载的内容,因此必须通过angular进行清理然后编译。这需要一段时间(几乎一秒钟),因为我有很多这样的链接,这阻碍了内容的显示。
答案 0 :(得分:3)
虽然我强烈建议不要这样做,因为申请中的$ apply不会影响任何事情(甚至性能)。您必须为此创建自己的指令。
<强> HTML 强>
<div data-no-apply-click="myFunction()">
</div>
<强>的Javascript 强>
.directive('noApplyClick', function ($parse) {
return {
compile : function ($element, attr) {
var fn = $parse(attr['noApplyClick']);
return function (scope, element, attr) {
element.on('click', function (event) {
fn(scope, {
$event : event,
$element : element
});
});
};
}
};
});
JsFiddle :http://jsfiddle.net/gj54bjsh/