Данные не обновляются при получении их от службы. Когда пользователь нажимает значок, данные отправляются в службу и другой - PullRequest
0 голосов
/ 06 марта 2020

Проверьте указанные ниже ts-файлы и помогите мне как можно быстрее

// введите компонент 1: из этого компонента я отправляю название компании и год через функция и сохранение данных в сервисе

      constructor(public route:Router , public nameService:GetNamesService) { }


      pickTheYear(selectedYear){
        console.log(selectedYear.value);
        if(this.company){
          localStorage.setItem("companyName",this.company)
          localStorage.setItem("selectedYear",selectedYear.value)
          window.open('/displayFiles', '_blank');
          this.nameService.sendCompanyName(this.company) 
          this.nameService.sendYear(selectedYear.value)     
        }
        selectedYear.reset()
        // window.open('/displayFiles','google','toolbar=no,scrollbars=no,resizable=no,top=300,left=600,width=800,height=800')
      }
  • // сервис: в этом сервисе я получаю данные от компонента 1 и сохраняю в соответствующие поля имени *

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

       I tried many ways and came to this...


      public Name = new BehaviorSubject<any>("Company Name")
      public share1 = this.Name.asObservable();
      public year = new BehaviorSubject<any>("Year")
      public share2 = this.year.asObservable();
      constructor() { }

      sendCompanyName(text){
        this.Name.next(text)
      }

      sendYear(text){
        this.year.next(text)
      }


*//component 2: Now,while i am tryiing to get data from the service its shows undefined until now and after setting the default values its printing the default values *


    constructor(public namesService:GetNamesService) {
       }

       company
       year

      ngOnInit(): void {
        this.company = localStorage.getItem("companyName")
        this.year = localStorage.getItem("selectedYear")
         this.getNames()
      }

      bool:Boolean = false

     *** getNames(){
        this.namesService.share1.subscribe(x=>console.log(x))
        this.namesService.share2.subscribe(y=>console.log(y))
      }***

1 Ответ

0 голосов
/ 06 марта 2020

В компоненте 1

this.nameService.Name.next(this.company)
this.nameService.year.next(selectedYear.value)

Файл в рабочем состоянии

Name = new BehaviourSubject<any>("Company Name");
year = new BehaviourSubject<any>("Year");

В компоненте 2 (конструктор)

this.nameService.Name.subscribe((companyName) => {
    console.log(companyName);
    this.companyName = companyName;
});

this.nameService.year.subscribe((year) => {
    console.log(year);
    this.year = year;   
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...