ロード画面を表示するためにAngular jsを使用しています。ファイルをダウンロードするための REST サービスを除くすべての REST サービス呼び出しで機能します。ダウンロードのために $resource; を使用してサービス呼び出しを行っていないため、機能しない理由を理解しています。その代わりに、ファイルをダウンロードするために通常のアプローチを使用しているため、Angular js コードはサービス リクエストの開始/終了を制御できません。$resource を使用してこの REST サービスにアクセスしようとしましたが、このサービスからデータを取得しています。この場合、読み込み画面は正常に機能していましたが、このデータを使用してユーザーに表示し、角度を付けてダウンロードする方法がわかりません。以下は必須の詳細です。助けてください。
iframe アプローチを使用したアプローチ 1:
/*Download file */
scope.downloadFile = function (fileId) {
//Show loading screen. (Somehow it is not working)
scope.loadingProjectFiles=true;
var fileDownloadURL = "/api/files/" + fileId + "/download";
downloadURL(fileDownloadURL);
//Hide loading screen
scope.loadingProjectFiles=false;
};
var $idown; // Keep it outside of the function, so it's initialized once.
var downloadURL = function (url) {
if ($idown) {
$idown.attr('src', url);
} else {
$idown = $('<iframe>', { id: 'idown', src: url }).hide().appendTo('body');
}
};
$resource を使用したアプローチ 2 (データを画面に表示してダウンロードする方法がわからない)
/*Download file */
scope.downloadFile = function (fileId) {
//Show loading screen (Here loading screen works).
scope.loadingProjectFiles=true;
//File download object
var fileDownloadObj = new DownloadFile();
//Make server call to create new File
fileDownloadObj.$get({ fileid: fileid }, function (response) {
//Q? How to use the response data to display on UI as download popup
//Hide loading screen
scope.loadingProjectFiles=false;
});
};