2
我建立了一个自定义的指令如何避免访问范围。NG重复内部指令
这里面$父是我的指令
angular.module('app')
.directive("pdf", function() {
return {
restrict: 'E',
scope: {
page: '=',
pdfDoc: '='
},
link : function(scope, element, attributes, vm){
console.log(scope.$parent.pdfDoc)
scope.page.doc = scope.$parent.pdfDoc;
console.log(scope);
vm.renderPage(scope.page.doc, scope.page.id, scope.page.num, scope.page.rotation);
},
templateUrl: 'components/pdfViewer/views/pdfViewer.directive.html',
controller: pdfViewerController,
controllerAs: 'vm',
}
});
这里是我的父控制器的HTML
<div class="thumbnail vthumbnail" ng-repeat="page in pages" data-drop="true" data-drag="true" ng-model="pages" jqyoui-droppable="{index: {{$index}}}" jqyoui-draggable="{index: {{$index}}, insertInline: true, direction:'jqyouiDirection'}" data-jqyoui-options="{revert: 'invalid'}" data-direction="{{page.jqyouiDirection}}" ng-init="doc = pdfDoc">
<pdf page="page" pdfDoc="doc"></pdf>
</div>
我的问题是如何将pdfDoc(它在父控制器的范围内)分配给指令pdf。它看起来像ng-repeat创建了自己的范围。我试着用NG-的init =“DOC = pdfDoc”但我不能在
<pdf page="page" pdfDoc="doc"></pdf>.
访问文档的唯一解决方案,我想出了现在已经在使用的指令范围。$父。但是,如果我想制作指令pdf模块,这不是一个干净的解决方案。
你们知道如何将父控制器的scope.variable传入ng-repeat内的指令吗?
感谢您的好建议! –