Переменные уровня класса Javascript / Angular - PullRequest
0 голосов
/ 29 мая 2020

Я новичок в angular У меня есть переменная уровня класса в моем angular компоненте под названием moratoriumID. Я вызываю метод, который вызывает POST, а затем присваивает номер moratoriumID, который возвращается из POST. Я считаю, что это работает по назначению, поскольку я вижу, что номер отображается в консоли отладчика chrome. Позже я пытаюсь получить доступ к переменной и использовать ее. Он говорит, что не определено. Зачем ? Что я не понимаю? Как я могу использовать moratoriumID позже в коде? Любое объяснение приветствуется. - Джейсон

export class AddMoratoriumsComponent implements OnInit {
   moratoriumID: number;

   //this gets called and assigns the moratoriumID from what I see
   PostMoratorium(moratoriumtopost: Moratorium):void {    
     this.moratoriumService.PostMoratorium(moratoriumtopost)
    .pipe(takeUntil(this.ngUnsubscribe))
    .subscribe((data) => (this.moratoriumID) = (data),
    (error) => (console.log(error)),
    () => console.log('Post moratorium is complete', this.moratoriumID), 
  );}

    //...I call it
      this.PostMoratorium(moratoriumtopost);

    //Later I try to use moratoriumID but it says its undefined ...why ?
       if (this.selectzipvalues.length>0){
         const res = this.isoLocs.filter(i => this.selectzipvalues.includes(i.zipCode));
         res.forEach(myFunction);
         function myFunction(item) {
            const moratoriumlocationstopost = {
              county:item.county ,
              city:item.city,
              zip:item.zipCode,
              moratoriumId:this.moratoriumID, //IT SAYS ITS UNDEFINED ..WHY ?
    } as MoratoriumLocation;   

}}

1 Ответ

0 голосов
/ 30 мая 2020

Ответ, похоже, заключается в использовании switchMap ().

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