2016-04-11 1 views
0

nicht möglich Ich versuche, Liste der Dateien auf einem Remote-Server abzurufen und sie auf einer Webseite anzuzeigen. Die Bereichsvariable fileListOnCTP enthält die Liste der Dateien, auf die über die Webseite zugegriffen wird. Die Webseite zeigt jedoch nicht die Liste der Dateien an. Jedoch zeigt NG-Inspector die Variable mit dem korrekten Wert an. Kann mir jemand sagen, wo ich vielleicht falsch liege?Zugriff auf Bereichsvariable von HTML

$scope.listOfFilesOnCTP = ""; 
 
\t $scope.fileListOnCTP = ""; 
 
\t $scope.GetListOfFilesonCTP = function(path){ 
 
\t $scope.listOfFilesOnCTP = RdaService.getListOfFilesonCTP(encodeURIComponent(path)).then(function(response){ 
 
\t \t \t var newData = response.data; 
 
\t \t \t console.log(newData); 
 
\t \t \t return newData; 
 
\t \t }); 
 
\t console.log($scope.listOfFilesOnCTP); // --> Displaying the file list correctly 
 
\t \t //path = path.replace(/\//g, '_'); 
 
\t $scope.fileListOnCTP = $scope.listOfFilesOnCTP; 
 
\t };
\t <div class="col-md-3" id="CTP Jobs"> 
 
\t \t <h3>JOBS</h3> 
 
\t \t <table class="table table-striped"> 
 
\t \t \t <div ng-model="fileListOnCTP" ng-init="GetListOfFilesonCTP('/home/topas/rda_app/JOBS')"> 
 
\t \t \t \t <span><tr>{{fileListOnCTP}} <!-- Variable not getting resolved although it shows correct value in controller --> 
 
\t \t \t \t \t </tr></span> 
 
\t \t \t </div> 
 
\t \t </table> 
 
\t </div>

+1

Sie können nicht nur einfach auf einem DIV einen 'ngModel' tun, nur auf Ein-/Textarea (Es sei denn, Sie eine Richtlinie verwenden, die' ngModel' erfordern) –

+0

Wenn der Rückgabewert ein Array, wahrscheinlich möchten Sie eine ng-Wiederholung. Was ist der Typ von fileListOnCTP? – BobS

+0

Danke für die Rückmeldung .. Aber ich hatte kein Glück, ohne ng-Modell als auch .. –

Antwort

2

Da Ihr RdaService.getListOfFilesonCTP kehrt ein Versprechen, müssen Sie innerhalb der then die $scope Variablen aktualisieren, weil das ist, wo Sie die aufgelöste Wert des Versprechens bekommen kann. Wenn Sie versuchen, Ihre $scope-Variable woanders festzulegen, gibt es keine Garantie, dass der Dienst einen Wert zurückgegeben hat, weshalb der vorherige Code nicht funktionierte.

Zum Vergleich: https://docs.angularjs.org/api/ng/service/$q#the-promise-api