app.directive('qFooter', function () { return { restrict: 'A', //This menas that it will be used as an attribute and NOT as an element. I don't like creating custom HTML elements replace: false, templateUrl: "app/fusion/scripts/view-models/footer.html", controller: ['$scope', '$filter', function ($scope, $filter) { // Your behaviour goes here :) }] } });