Controller on the element where the directive is used: >>>$scope.disableClearMessage = true; >>>// Directive attribute: >>>disable-action = "disableClearMessage" >>>// Directive scope: >>>disableAction : '=' >>>//Directive template: >>>ng-disabled = "{{disableAction}}">>>
>>template: '<a ng-click="click()" ng-disabled="disableAction" >{{ linkText }}</a>'>>
//When disableClearMessage = true: > >//With disableAction: ><a ng-disabled="disableAction" class="ng-binding" disabled="disabled"></a> > >//With {{disableAction}} ><a ng-disabled="true" class="ng-binding" disabled="disabled"></a> > >//When disableClearMessage = false: > >//With disableAction: ><a ng-disabled="disableAction" class="ng-binding"></a> > >//With {{disableAction}} : ><a ng-disabled="false" class="ng-binding"></a>So both worked but using the curly braces seems more like the desired result (e.g. ng-disabled="true")