最近我開始玩Angular 2和TypeScript,我想知道如何在整個網頁上訪問Singleton Class
。範圍html元素
我在做的是一個UIManagerService
,目前只有一個boolean
來檢查是否正在訪問一個UI組件。
有了這個boolean
我想一個類被我<html>
元素toggeled:
.noselect {
-o-user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
user-select: none;
}
而且存取權限是這樣的:
<html [class.noselect] = "UIManagerService.HoldingUI">
...
</html>
更多Components
將在年底存取權限此Singleton class
。
我的做法
在其他語言,我會用單類管理類課程。這是方法,我也TOKE:
export class UIManagerService {
holdingUI:Boolean;
static instance : UIManagerService;
static isCreating: Boolean = false;
constructor() {
if(!UIManagerService.isCreating) {
throw new Error("You can't call new in singletong instance");
}
}
static getInstance() {
if(UIManagerService.instance == null) {
UIManagerService.isCreating = true;
UIManagerService.instance = new UIManagerService();
UIManagerService.isCreating = false;
}
return UIManagerService.instance;
}
setHoldingUI(value) {
this.holdingUI = value;
}
getHoldingUI() {
return this.holdingUI;
}
}
現在,一旦我嘗試存取權限它在Component
這個偉大工程:
export class Slider {
constructor() {
}
mousedown(event) {
UIManagerService.getInstance().setHoldingUI(true);
console.log(UIManagerService.getInstance().getHoldingUI());
}
}
在此先感謝,
Nkmol
謝謝你的回答。但是,這並沒有將其範圍限定在包含''和'
'元素的整個文檔中。這就是爲什麼我必須使用Singleton。 – nkmol我不明白'
'和「單身人士」是如何相關的。你的問題包含了很多代碼,但它並沒有說(實際)問題是什麼。您不能在'@GünterZöchbauer我的關係是因爲我無法'引導'我的''元素,我認爲singelton是我唯一的選擇。但正如你所說,我可能無法用「角度」來確定它的範圍。 關於你給的鏈接:我可能也使用普通的javascript'document'來訪問''元素? (看我的回答) – nkmol