Как получить доступ к данным в файле JSON в угловом приложении - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь загрузить и проанализировать файл JSON в угловое приложение.Проблема в том, что я могу загрузить файл, но не могу получить доступ к данным.

Я подтвердил, что файл проверяется при проверке размера в битах.

Я совершенно уверенрешение довольно простое, но я никогда раньше не работал с JSON на angular.Ниже мой код, функция, где я ищу доступ к файлу startUpload()

import { Component, OnInit } from '@angular/core';
import { AngularFireStorage, AngularFireUploadTask } from 'angularfire2/storage';
import { AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument } from 'angularfire2/firestore';
import { Observable } from 'rxjs/Observable';
import { tap } from 'rxjs/operators';
import { AngularFireAuth} from 'angularfire2/auth';


interface User {
  email: string;
  store_name: string;
  username: string;
  uid: string;
  authToBuild: boolean;
}


@Component({
  selector: 'app-file-upload',
  templateUrl: './file-upload.component.html',
  styleUrls: ['./file-upload.component.css']
})
export class FileUploadComponent implements OnInit {

    task: AngularFireUploadTask;

    percentage: Observable<number>;

    snapshot: Observable<any>;

    downloadURL: Observable<string>;

    isHovering: boolean;

    uid: any;

    authToBuild: boolean;

    userDoc: AngularFirestoreDocument<User>;

    snapshotName: any;


  constructor(public af: AngularFireAuth, private storage: AngularFireStorage, private db: AngularFirestore) { 

    this.af.authState.subscribe(auth => { 
      if(auth) {

          //this.getAccountName();
          this.uid = auth.uid;
          this.userDoc = this.db.doc("users_real/" + auth.uid);
          //this.user = this.userDoc.valueChanges();
          this.snapshotName = this.userDoc.snapshotChanges()
          .subscribe(event => {
            //this.name = event.payload.data()["name"];
            //this.authToBuild = event.payload.data()["authToBuild"];

            console.log(event.payload.data()["name"]);

          });




        }

      });

  }

  toggleHover(event: boolean) {
    this.isHovering = event;
  }


  startUpload(event: FileList){
    const file = event.item(0);

    console.log(file)




  }

  isActive(snapshot) {
    return snapshot.state === 'running'  && snapshot.bytesTransferred < snapshot.totalBytes
  }


  ngOnInit() {
  }

}

1 Ответ

0 голосов
/ 27 мая 2018

Вы должны изучить синтаксический анализ локального файла JSON: https://www.quora.com/In-JavaScript-how-do-I-read-a-local-JSON-file

Если я правильно понимаю, вам необходимо прочитать содержимое локального файла, в данном примере это файл JSON.Это повлечет за собой использование FileReader для получения содержимого файла и синтаксического анализа JSON из файла.Отсюда другой вопрос: нужно ли вам загружать манипулированный файл .json в AngularFireStorage, или вы просто будете устанавливать данные в документе Firestore?

Мы все очень смущены, потому что у вас много кода AngularFire, но это включает чтение файлов на стороне клиента.AngularFirestore предназначен для добавления документов с данными JSON в коллекцию, а AngularFireStorage предназначен для загрузки и выгрузки файлов.Ни то, ни другое не относится к манипулированию на стороне клиента каким-либо локальным типом файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...