Angular:

http://angularjs.org/

by mrajcok

HTML

<div ng-controller="MyCtrl">
    <div data-nav-item text="My Text1 - disable attr present" href="/mytemplate.html" id="idx" disable="disableCheckFn()"></div>
    <div data-nav-item text="My Text2 - disable attr not present" href="/mytemplate.html" id="idx"></div>
</div>

JavaScript

var myApp = angular.module('myApp',[]);

myApp.directive('navItem', function() {
  return {
    restrict: 'A',
    scope: {
         text: '@',
         href: '@', 
         id: '@',
         disable: '&'
    },
    replace: true,
    link: function(scope, element, attrs) {
        scope.disabled = '';
        if(angular.isDefined(attrs.disable)) {
            //scope.$parent.$eval(attrs.disable);
            scope.disable();
        } else {
            console.log('disable attr not present');
        }
    },        
    template: '<li class="{{disabled}}"><a href="{{href}}" id="{{id}}">{{text}}</a></li>'
  }        
});

function MyCtrl($scope) {
    $scope.disableCheckFn = function() {
        console.log('disableCheckFn');
        return true;
    }
}