我有两个班级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;
}
}
我的问题是,当触发类B中的id
函数时,我想更改类A中的changeId()
的值。我不希望该值保持为0,因为我想在应用程序的其他部分中使用id
并且该值必须是动态的。请怎么可能呢?
NB 我正在将其用于Ionic 3应用
答案 0 :(得分:0)
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);
}
}
答案 1 :(得分:0)
您当前的代码已经更改了A中的id的值,因为它是静态的。
let b = new B();
b.changeId(3);
console.log(A.id); //prints 3
b.changeId(6);
console.log(A.id); //prints 6