Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何仅对Angular JS中的父元素使用$event?_Angularjs - Fatal编程技术网

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,span
span
内的计数器不是递增的。仅通过单击父元素
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