2017-06-29 78 views
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內的指令嗎?

回答

1

角轉換駝峯規則,以蛇外殼,所以在DOM重命名pdfDocpdf-doc

<pdf page="page" pdf-doc="doc"></pdf>. 
+0

感謝您的好建議! –