<!DOCTYPE html>
<html ng-app="app">

  <head>
    <link data-require="bootstrap-css@*" data-semver="3.3.1" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" />
    <script data-require="jquery@*" data-semver="2.1.4" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script data-require="angular.js@1.4.1" data-semver="1.4.1" src="https://code.angularjs.org/1.4.1/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-controller="MainController as vm">
    <h1 it-click="vm.click()" it-mouseover="vm.mouseover()">Hello {{ vm.name }}!</h1>
  </body>

</html>
var app = angular.module('app', []);

app.controller('MainController', function() {
  var vm = this;
  
  vm.name = 'Daniel';
  
  var count = 0;
  vm.mouseover = function() {
    count += 1;
    console.log('mouseover count: ' + count);
  };
  
  var clickCount = 0;
  vm.click = function() {
    clickCount += 1;
    console.log('click count: ' + clickCount);
  }
});

app.directive('itMouseover', function itMouseover() {
  return {
    scope: {},
    restrict: 'A',  // custom attribute
    link: function (scope, element, attrs) {
      // you can use jQuery here
      $(element).on('mouseover', function () {
        console.log('mouseover');
        scope.$eval(attrs.itMouseover);
      });
    }
  };
});

/* Styles go here */