2017-12-30 17 views
0

Ich arbeite mit Angular 5, ich habe eine Anwendung, in der ich eine AMP HTML-Datei als Text lesen muss. Diese Datei ist in einer Komponente enthalten und sollte nur von dieser Komponente aus zugänglich sein.Javascript, Typescript, Angular 5 - Öffnen und lesen Sie die Datei

Ich möchte in der Lage sein, die Datei schreibgeschützt zu öffnen, indem Sie ihren Namen angeben.

bin auf der Suche ich wirklich für so etwas wie:

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

Ist es möglich? Wenn nicht, wie kann ich das erreichen?

+3

In welcher Umgebung? Von einem Browser? KnotenJS? Windows Metro App? Etwas anderes? –

+0

Im Browser können Sie aufgrund von Sicherheitsproblemen nicht mit JS auf das Dateisystem zugreifen. Wenn Sie Node verwenden, können Sie das eingebaute 'fs'-Modul verwenden, um aus einer Datei zu lesen und zu schreiben. – magreenberg

+0

Ich entwickle mit Angular, ich habe in einer Komponente eine Datei, die ich gerne lesen würde – Arphel

Antwort

-1

Wenn Sie schreiben browserside JS

Sie können nicht nur einfach eine Datei lesen. Der JS wird in Ihrem Browser ausgeführt, und Sie müssen darüber nachdenken, woher Sie diese Datei erhalten.

Wenn sich die Datei auf einem Server befindet, müssen Sie zuerst die Datei fetch vom Server anfordern, indem Sie eine entsprechende Anforderung stellen.

Wenn Sie eine Datei auf dem Computer des Benutzers lesen, verwenden Sie die File API im Browser, damit der Benutzer diese Datei auswählen kann.

Wenn Sie Back-End-JS gerade schreiben

Sie verwenden NodeJS Unter der Annahme, können Sie Dateioperationen wie würden Sie mit anderen Programmiersprachen leiten. Schauen Sie sich die fs Modul

0

Wenn ich verstehe, Sie zu korrigieren, können Sie es als Text wie folgt lauten:

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 
} 

Nutzung:

readFile('link.html') 

Ich löste dieses Problem zum Glück zu this question.

+0

Ich habe diese Nachricht bei Verwendung von XMLHttpRequest: [Deprecation] synchrone XMLHttpRequest auf dem Hauptthread ist wegen seiner schädlichen Auswirkungen auf den Endbenutzer veraltet Erfahrung. – Arphel

+0

Diese Lösung funktioniert für mich auf v5, ich kann Ihnen einen Link zum Projektbeispiel geben. Andernfalls geben Sie bitte weitere Informationen wie Modul- und Komponentendateien an. https://www.dropbox.com/sh/js39skue1sz1ovq/AAAbBGStl6gn9nLfkHD_oAVna?dl=0 – Animus

Verwandte Themen