Angularjs 如何仅对Angular JS中的父元素使用$event?
我有带有Angularjs 如何仅对Angular JS中的父元素使用$event?,angularjs,Angularjs,我有带有ng click事件的HTML代码: <div class="btn share" ng-click="do($event)"> <span">1</span> </div> 当我单击元素div或子元素span时,称为事件do()。 但是,如果我点击span,spanspan内的计数器不是递增的。仅通过单击父元素div。 如何为div和span元素设置相同的$event <div class="btn share" ng-cl
ng click
事件的HTML代码:
<div class="btn share" ng-click="do($event)">
<span">1</span>
</div>
当我单击元素div
或子元素span
时,称为事件do()
。
但是,如果我点击span,spanspan
内的计数器不是递增的。仅通过单击父元素div
。
如何为
div
和span
元素设置相同的$event
<div class="btn share" ng-click="do()">
<span>{{count}}</span>
</div>
但是,如果您仍然想知道您的方法失败的原因,那是因为您需要使用currentTarget
,而不仅仅是target
:
angular.module('demo',[]).controller('MainCtrl',function($scope){
$scope.do=函数(事件){
var target=angular.element(event.currentTarget);
var parsed=parseInt(target.find('span').text(),10);
target.find('span').text(解析+1);
};
});代码>
1.
我建议使用范围绑定而不是DOM textContent:
<div class="btn share" ng-click="do()">
<span>{{count}}</span>
</div>
但是,如果您仍然想知道您的方法失败的原因,那是因为您需要使用currentTarget
,而不仅仅是target
:
angular.module('demo',[]).controller('MainCtrl',function($scope){
$scope.do=函数(事件){
var target=angular.element(event.currentTarget);
var parsed=parseInt(target.find('span').text(),10);
target.find('span').text(解析+1);
};
});代码>
1.
你做得不对。Angular不是jQuery。您不应该在控制器中执行任何DOM操作。视图应基于模型生成,反之亦然
代码应该是
<div class="btn share" ng-click="do()">
<span>{{ counter }}</span>
</div>
你做得不对。Angular不是jQuery。您不应该在控制器中执行任何DOM操作。视图应基于模型生成,反之亦然
代码应该是
<div class="btn share" ng-click="do()">
<span>{{ counter }}</span>
</div>
您是否也尝试将相同的单击事件添加到您的范围中
像这样
<span ng-click="do($event)"> 1 </span>
1
您是否也尝试将相同的单击事件添加到您的span中
像这样
<span ng-click="do($event)"> 1 </span>
1