2015-04-05 101 views
0

我尝试发送event工厂等为:如何将事件点击发送到工厂Angular js?

HTML

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

角JS

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

所以,我可以看到userFactory这是我从点击

发送 event

在方法delete我已经写了:

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

它给我的错误:

Cannot read property 'target' of undefined

+3

我想你需要使用'$ event'而不是'event' – 2015-04-05 11:49:58

+0

不要删除元素,删除数据和角度会为你删除元素 – charlietfl 2015-04-05 12:19:29

回答

3

当您使用ngClick指令,它创建于当前的范围对象命名$事件。

你可以把它送到像这样的控制器:

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

我想其他的事情,把你的注意的是,你应该避免从控制器/工厂改变DOM。如果你有一个用户数组,那么你应该使用ngRepeat来渲染它。当你在deleteUser函数中删除用户时,你也应该从你用来填充ngRepeat指令的数组中删除它。这样,角将删除DOM中的项目,并且您不必自行删除它。

相关问题