Как изменить значение переменной в другом классе в Angular - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть два класса A и B

Класс A

export class A{
   static id: number = 0;

   constructor() {
      A.id = A.id;
   }
}

Класс B

import{A} from '../A';
export class B {
   constructor() {}
   changeId(id:number){
     A.id = id;
   }
}

Моя проблема в том, что я хочу изменить значениеid в классе A, когда срабатывает функция changeId() в классе B.Я не хочу, чтобы значение оставалось 0, потому что я хочу использовать id в других частях моего приложения, и значение должно быть динамическим.Пожалуйста, как это возможно?

NB Я использую это для приложения Ionic 3

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Ваш текущий код уже меняет значение id в A, поскольку оно статично.

let b = new B();
b.changeId(3);
console.log(A.id); //prints 3
b.changeId(6);
console.log(A.id); //prints 6
0 голосов
/ 28 ноября 2018
import { Events } from 'ionic-angular';

export class A{
   static id: number = 0;

   constructor(public events: Events) {
      events.subscribe("idChange", (id) => {
         A.id = id; //id is a static variable 
      }); 
   }
}


import { Events } from 'ionic-angular';

export class B {
   constructor(public events: Events) {}
   changeId(id:number){
      this.events.publish("idChange", id);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...