我在一个页面上有两个组件:Component1和Component2。每个内部都是Component3。很明显,每个组件3都是它自己的组件实例。但是,我希望两者之间有一个全局变量。我创建了一些数据的并排比较,并希望手风琴起作用,所以当我单击以在一个Component 3上展开手风琴时,另一个也会打开。我一直在寻找几个小时,无法找到解决方案。跨多个组件实例的角度2全局变量
我要的是,例如:
(click) = "changeGlobalVar()"
改变全局变量。然后,我想有
*ngIf="globalVar"
这样一来,ngIf
工程两个子项目3,不管我点击其中之一。
有人能帮我吗?我一直在寻找这个小时的答案。
这里是我的服务代码看起来像,但似乎并不奏效:
import {Injectable} from '@angular/core';
@Injectable()
export class DropDownService {
public _acDropDownToggle: boolean;
setValue(val) {
this._acDropDownToggle = val;
}
getValue() {
return this._acDropDownToggle;
}
}
使用'service'并注入组件中。他们是单身人士,所以价值将是相同的各个组成部分。 – reptilicus
当我使用服务时,它似乎不是同一个变量。我会在我的服务中用我的代码更新我的问题。 –
你可能在多个地方提供你的DropDownService,因此你得到了你的服务的多个实例(在Angular 2中,服务不一定是单身人士)。只尝试将DropDownService放入Component1和Component2上方组件的'providers'数组中。然后每个Component3实例应该获得对您的服务的相同/单个实例的引用。 –