Tenho dois componentes, 1. Componente do aplicativo 2. Componente principal
app.component.ts
ngOnInit () {
this.httpService.get('./assets/batch_json_data.json').subscribe(data => {
this.batchJson = data as string [];
}
Consigo obter o JSON de um arquivo para 'batchJson' e preciso transmiti-lo ao meu componente principal para operações futuras.
Não há nenhum evento ou qualquer coisa que desencadeie isso.
Ainda não implementei nada, estou tentando ler @Input, @Output etc, mas não entendo como funciona e preciso ler mais um pouco.
Acabei de declarar o básico no main.component.ts
import { Component, OnInit, ViewChild, Input } from '@angular/core';
import { AppComponent } from '../app.component';
export class MainComponent implements OnInit {
}
Por favor me ajude, eu sou um novato absoluto no Angular e não posso tentar nada porque meus conceitos não são claros e eu naveguei pelo Stack Overflow, as respostas não correspondem aos meus requisitos.
Uma solução poderia ser usar um BehaviorSubject público em seu app.component.ts.
public batchJson$ = new BehaviorSubject<JSON>(null);
ngOnInit () {
this.httpService.get('./assets/batch_json_data.json').subscribe(data => {
this.batchJson = data as string [];
this.batchJson$.next(JSON.parse(data));
}
Em seguida, em seu main.component.ts
constructor(private _appComponent : AppComponent )
ngOnInit(){
this._appComponent.batchJson$.subscribe((data)=>{
if(data != null){
//set data to local variable here
}
})
}
Normalmente, eu armazeno esse tipo de lógica em um serviço, usando isso em um componente irá definitivamente direcioná-lo na direção certa para aprender este conceito. De preferência, seu componente deve ser responsável por interagir com a interface do usuário e renderizar dados, enquanto seus serviços tratam da recuperação e distribuição de dados.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras