Javascript 嵌套ng单击 {{getEmployeeByName(employee.name).name}
这是我代码的一部分。两个“ng click”都被调用。我只需要内部ng click=“addTeamMember(employee)。Javascript 嵌套ng单击 {{getEmployeeByName(employee.name).name},javascript,angularjs,Javascript,Angularjs,这是我代码的一部分。两个“ng click”都被调用。我只需要内部ng click=“addTeamMember(employee)。 如何处理?嗯,如果我理解你的问题,你需要这个吗 <div ng-repeat='employee in filteredStaff ' ng-click="describeEmployee(employee)" > <div class="gridNameTd"> <div ng-click="addTeam
如何处理?嗯,如果我理解你的问题,你需要这个吗
<div ng-repeat='employee in filteredStaff ' ng-click="describeEmployee(employee)" >
<div class="gridNameTd">
<div ng-click="addTeamMember(employee)">{{getEmployeeByName(employee.name).name}} </div>
</div>
</div>
{{getEmployeeByName(employee.name).name}
您需要使事件不在DOM树中冒泡。单击即可传递事件,并告诉它不要使用$event.stopPropagation将其传递到链上
这是一个正在工作的plunker:
例如:
在控制器中:
<div ng-repeat='employee in filteredStaff'>
<div class="gridNameTd">
<div ng-click="addTeamMember(employee)">{{getEmployeeByName(employee.name).name}} </div>
</div>
</div>
在HTML中:
$scope.addTeamMember = function($event, employee) {
$event.stopPropagation();
// do stuff....
}
{{getEmployeeByName(employee.name).name}
尝试使用$event.stopPropagation()
停止内部事件的传播,如下所示:
<div ng-repeat='employee in filteredStaff ' ng-click="describeEmployee(employee)" >
<div class="gridNameTd">
<div ng-click="addTeamMember($event, employee)">{{getEmployeeByName(employee.name).name}} </div>
</div>
</div>
{{getEmployeeByName(employee.name).name}
您可能还需要查看用于处理员工姓名的筛选器。当然,我不知道您的函数在做什么,但是getEmployeeByName(employee.name)。name看起来您已经有了员工的姓名,您只是在将其翻译成其他版本的姓名。因此,这可能会更改为{{employee.name | employeeName}其中employeeName是一个新的筛选器,它执行getEmployeeByName()以前所做的任何操作。这将允许更好地重用该函数,而不必一直将其注入控制器作用域(假设它在其他地方使用)。我找不到从何处获取$event。did:{getEmployeeByName(employee.name).name}一秒钟后,我从手机转换到PC,这样我就可以正确地构建一个示例。:)编辑示例以显示HTML更改,并提供指向plunker示例的链接。是的-thx。我明白了:我需要从HTML元素发送$event。而$event是JQueryLite的一部分。JQueryLite捆绑到Angular中。您会发现许多相似之处(因为它是JQuery;))
<div ng-repeat='employee in filteredStaff ' ng-click="describeEmployee(employee)" >
<div class="gridNameTd">
<div ng-click="addTeamMember(employee); $event.stopPropagation()">{{getEmployeeByName(employee.name).name}} </div>
</div>
</div>