2015-04-05 47 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中的項目,並且您不必自行刪除它。