我在一個頁面上有兩個組件: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實例應該獲得對您的服務的相同/單個實例的引用。 –