I have a directive like the following:
.directive('myDirective', function() {
return {
restrict: 'AE',
replace: true,
templateUrl: '/myDirective.html?v=' + window.buildNumber,
link: function (scope, element, attrs) {
scope.itemClasses = attrs.itemClasses || '';
}
}
})
and it's template looks like:
<div class="my-directive">
<div class="items" ng-repeat="item in items">
<div class="item {{ itemClasses }}">{{ item.title }}</div>
</div>
</div>
and that directive is called in different places (one call per template) like this:
<my-directive item-classes="col-md-6"></my-directive>
...
<my-directive item-classes="col-md-12"></my-directive>
And all templates render the same value of itemClasses. At the same time link function sets proper value (I checked this fact by call of console.log()).
And if I add scope: true attribute to the directive's code - then all works fine. So, it seems like having own inherited scope helps. Could you explain me such behaviour?
Thank you.