0

Ich versuche, Dateien in jedem Ordner/Verzeichnis anzuzeigen.Zugriff auf andere Bereichsvariablen in benutzerdefinierten Vorlage

Ich benutze benutzerdefinierte Direktive, um jedes der Verzeichnisse wie folgt anzuzeigen (dieser Teil funktioniert).

Aber es löst nicht die Variable {{file}} in der benutzerdefinierten Vorlage folderListing.html. Kann mich bitte jemand korrigieren, wo ich falsch liege?

folderListing.js 
 

 
app.directive('folderListing', function(){ 
 
\t return { 
 
\t  restrict: 'E', 
 
\t  scope: { 
 
\t  \t listing:'=' 
 
\t  }, 
 
\t  templateUrl: 'js/directives/folderListing.html' 
 
\t }; 
 
}); 
 

 

 
RdaController.js 
 
app.controller('RdaController', ['$scope','RdaService', function($scope,RdaService) { 
 
\t 
 
    $scope.folders = ['RDA Server Folder','CTP Outbox', 'CTP Inbox', 'CTP Jobs']; 
 
\t $scope.sendToCTP = function(file){ 
 
\t \t return RdaService.SendFileToCTP(file); 
 
\t }; 
 
\t $scope.listOfFiles = ['learn_javascript.pdf', 'HTML Made Easy.pdf', 'AngularJS for everybody.pdf']; 
 
\t 
 
}]);
index.html 
 
<folder-listing listing="folder" ng-repeat="folder in folders"></folder-listing> 
 

 

 
folderListing.html 
 
<div class="row"> 
 
<div class="col-md-3" id="{{listing}}"> 
 
<table class="table table-striped"> 
 
<h3> {{ listing }} </h3> 
 
    \t <div class="row"> 
 
\t \t <div class="col-md-3" ng-repeat="file in listOfFiles"> 
 
\t \t \t {{file}} 
 
\t </div> 
 
</div> 
 
<td><span class="btn-group" role="group"><button type="button" class="btn btn-default" ng-click="sendToCTP(file)">Execute</button></span></td> 
 
</table> 
 
</div> 
 
</div> \t 
 
\t

Antwort

1

mit diesem:

scope: { 
    listing:'=' 
}, 

Sie haben ein Isolat Bereich erstellt nur listing der Richtlinie vorbei. Sie müssen dies ändern:

scope: { 
    listing: '=', 
    listOfFiles: '=', 
    sendToCTP: '&sendToCtp' 
}, 

die Funktion übergeben Sie auf Ihrer Richtlinie ein send-to-ctp="sendToCTP(file)" Attribut hinzufügen müssen werde. Jedoch in Ihrer Vorlage ist Ihre Schaltfläche mit ng-click="sendToCTP(file)" außerhalb Ihrer ng-repeat so file wird immer undefiniert sein.

Verwandte Themen