2017-03-15 3 views
0

ng-csvを使用して、CSVファイルにREST応答を生成しています。私はクライアント側のコントローラでデータを取得していますが、CSVファイルに反映されていません。ng-csvディレクティブを使用してCSVファイル内にRESTのデータがレンダリングされない

私がここに示したすべてのソリューションを試しました:ng-csv with data from api calls、残念ながら私のために働いたものはありません。私のアプローチに欠けていることはありますか?ここで

は私のコードです:

HTML

<button class="btn btn-default" 
     ng-csv="generateEmployeeData()" 
     filename="employeedata_{{employeename}}.csv">Download</button> 

クライアント側のコントローラ

$scope.generateEmployeeData = function() { 
     var deferred = $q.defer(); 

     $scope.employeename = empName; 

     $http.get('/api/employee-information/download') 
      .success(function(data){ 
       return deferred.resolve(data); 
      }); 

     return deferred.promise; 
     //return result; 
    } 

サーバー側コントローラ

exports.downloadEmployee = function (req, res) { 
    var tempCtr = [], empColl = []; 

    tempCtr.push({ 
     employeeID: "12345678", 
     employeeName: "Test McTester" 
    }); 

    tempCtr.unshift({ 
     employeeID: "Employee ID", 
     employeeName: "Employee Name" 
    }); 

    res.csv(tempCtr); 
} 

ご回答いただければ幸いです。

ありがとうございます。

答えて

0

なぜあなたは別の約束の中にカスタム約束を作成していますか? Httpは約束どおりに応答を返すので、再度約束をする必要はありません。それは意味がありません。範囲変数に応答を割り当て、それをng-csvにバインドします。

火NG-Init指令

<button class="btn btn-default" 
     ng-init="generateEmployeeData()" 
     ng-csv="dataArra" 
     filename="employeedata_{{employeename}}.csv">Download</button> 

$scope.generateEmployeeData = function() { 
    $scope.employeename = empName; 
    $http.get('/api/employee-information/download') 
     .success(function(data) { 
      $scope.dataArra = data 
     }); 
} 
+0

こんにちは内部generateEmployeeData方法は、ご回答ありがとうございました。私はこれを試みたが、うまくいかなかった。私はまだ空のCSVファイルを取得しています。 –

+0

は '.success'からのデータです –

+0

はい、私は' console.log($ scope.dataArra) 'を配置しました。私はサーバー側からデータを取得しています。 –

関連する問題