2016-04-11 8 views
0

リモートサーバー上のファイルの一覧を取得してWebページに表示しようとしています。 スコープ変数fileListOnCTPには、Webページからアクセスするファイルのリストが格納されています。しかし、ウェブページはファイルのリストを表示しません。しかし、ng-inspectorは変数が正しい値を保持していることを示します。誰かが私がどこに間違っているかもしれないか教えてくれますか?あなたのRdaService.getListOfFilesonCTPリターンの約束以来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

することはできません単純な –

+0

(あなたが 'ngModel'が必要なディレクティブを使用していない限り)戻り値がある場合にのみ、入力/テキストエリアに、DIVに' ngModel'を行います配列は、おそらくng-repeatが必要です。 fileListOnCTPのタイプは何ですか? – BobS

+0

フィードバックをありがとう..しかし、私もng-modelを使わないと運がありませんでした。 –

答えて

2

お約束の解決された値を得ることができる場所ですので、あなたは、thenの内部$scope変数を更新する必要があります。 $scope変数を別の場所に設定しようとすると、サービスが値を返すという保証はありません。そのため、前のコードが機能しなかったのです。参考のため

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

関連する問題