2017-12-30 54 views
0

私はAngular 5で作業しています。私はAMP HTMLファイルをテキストとして読み込む必要があるアプリケーションを持っています。このファイルはコンポーネントに含まれており、このコンポーネントからのみアクセスする必要があります。Javascript、Typescript、Angular 5 - ファイルを開く/開く

ファイル名を指定すると、読み取り専用でファイルを開くことができます。

私は実際にこのような何かを探しています:

let file = open('amp.html'); 

それは可能ですか?これを達成するためにどうすればいいですか?

+3

どのような環境でですか?ブラウザから? NodeJS? Windowsメトロアプリ?他に何か? –

+0

ブラウザからは、作成したセキュリティ上の問題のため、JSを使用してファイルシステムにアクセスすることはできません。 Nodeを使用している場合は、組み込みの 'fs'モジュールを使用してファイルから読み書きすることができます。 – magreenberg

+0

私はAngularを使って開発していますが、コンポーネントには読みたいファイルがあります – Arphel

答えて

-1

あなたはbrowserside JS

を書いている場合は、単にファイルを読み取ることができません。 JSはブラウザ上で動作しており、そのファイルをどこから取得しているのか考える必要があります。

ファイルがサーバー上にある場合は、そのファイルをサーバーから最初に要求してfetchに送信する必要があります。

ユーザーのコンピュータ上のファイルを読む場合は、ブラウザでFile APIを使用して、そのファイルを選択できるようにします。あなたは他のプログラミング言語の場合と同じよう

あなたはNodeJSを使用していると仮定すると、バックエンドのJSに

を書いている場合は、ファイル操作を行うことができます。私はあなたが修正理解していればfsモジュール

0

をチェックアウト、あなたはこのようなテキストとしてそれを読むことができます:

function readFile(file){ 
    var raw = new XMLHttpRequest(); // create a request 
    raw.open("GET", file, false); // open file 
    raw.onreadystatechange = function(){ // file is ready to read 
     if(raw.readyState === 4){ 
      if(raw.status === 200 || raw.status == 0){ 
       var allText = raw.responseText; 
       alert(allText); // can be also console.logged, of course. 
      } 
     } 
    } 
    raw.send(null); // return control 
} 

使用:

readFile('link.html') 

は私がthis questionにありがたいことに、この問題を解決しました。

+0

XMLHttpRequestを使用しているときにこのメッセージが表示されます: [撤回]メインスレッドの同期XMLHttpRequestは、経験。 – Arphel

+0

このソリューションはv5で動作します。プロジェクトサンプルへのリンクを提供しています。 それ以外の場合は、モジュールやコンポーネントファイルなどの詳細情報を入力してください。 https://www.dropbox.com/sh/js39skue1sz1ovq/AAAbBGStl6gn9nLfkHD_oAVna?dl=0 – Animus

関連する問題