Директива AngularJS Transclude родительской области видимости
Я работаю над директивой и использую transclude, поэтому внутри нее используется внутренний элемент директивы use.
Допустим, это мнение моей директивы:
<div>
<div ng-repeat="opt in options">
<ng-transclude></ng-transclude>
</div>
</div>
Директива:
app.directive("myDirective", function(){
return {
restrict: "E",
transclude: true,
templateUrl: 'my-directive.html',
scope: {
options: '='
}
};
});
И простое использование этого:
<my-directive options="someOptions">
<p>{{someObject[$parent.opt]}}</p>
</my-directive>
Это работает просто отлично. Моя проблема с этим решением заключается в том, что это $parent.opt
не очень читабельно и понятно... Есть ли другой вариант?
Спасибо
1 ответ
Ваша директива кажется очень специфической.
Как насчет передачи родителя в директиву тоже?
<my-directive options="someOptions" object="someObject"></my-directive>
В директиве:
<div>
<div ng-repeat="opt in options">
<p>{{object[opt]}}</p>
</div>
</div>
А потом добавить object: '<'
в вашей изолированной декларации.