如何发送事件点击工厂Angularjs?

时间:2015-04-05 11:47:01

标签: angularjs

我尝试将event发送到工厂,如:

HTML

ng-click="deleteUser(event, <?=$val->subscribetouserId?>);"

Angular JS

$scope.deleteUser = function(event, idUser){
    userFactory.delete(idUser, event);
}

因此,我可以看到userFactory点击

发送event

在方法delete中,我写道:

angular.element(event.target).closest('.item').remove();

它给了我错误:

  

无法阅读财产&#39;目标&#39;未定义的

1 个答案:

答案 0 :(得分:3)

使用ngClick指令时,它会在当前作用域上创建一个名为$ event的对象。

你可以像这样发送给控制器:

ng-click="deleteUser($event, ...)"

我想提请你注意的另一件事是你应该避免从控制器/工厂改变DOM。如果您有一组用户,那么您应该使用ngRepeat来呈现它。在deleteUser函数中删除用户时,还应该从用于填充ngRepeat指令的数组中删除它。这样,angular将从DOM中删除该项,您不必自己删除它。