I got this error: TypeError: Cannot read property 'preventDefault' of undefined at Scope.$scope.dispatchAction.
I can't figure out what is the problem, would you please help me? Thanks.
----Template----
$templateCache.put("template/dropdown-user.html",
'<ul class="dropdown-menu dropdown-user">'+
'<li ng-repeat-start="item in items">'+
"<a ng-click=\"click(item,$event)\" ng-href=\"{{item.link}}\"><i class=\"fa fa-{{item.icon}} fa-fw\"></i> {{item.label}}</a>"+
'</li>'+
"<li ng-repeat-end class=\"divider\" ng-if=\"item.isDivider\"></li>"+
'</ul>'
);
---Directive---
.directive('navbarMenuUserItem',[function(){
return {
restrict: 'E',
templateUrl: 'template/dropdown-user.html',
replace: true,
scope:{
items: '=',
click: '&itemClick'
}
}
}])
---HTML---
<navbar-menu-user-item item-click="dispatchAction(obj,event)" items="usermenu"></navbar-menu-user-item>
Controller*
app.controller('dashboardCtrl',
['$scope','$sanitize','$log','$location','dashboardService','AuthService',
function($scope, $sanitize, $log, $location, dashboard,AuthService){
$scope.messages = dashboard.getMessages();
$scope.usermenu = dashboard.getUserMenu();
$scope.sidebarmenu = dashboard.getSidebar();
$scope.logout = function(){
AuthService.logout();
$location.path('/');
};
$scope.dispatchAction = function(obj,event){
event.preventDefault();
console.log(obj);
};
}
]);
<a ng-click=\"click({obj:item,event:$event})\"in your template dropdown-user.htmlitem-click="dispatchAction(obj,event)"