![](/img/trans.png)
[英]ionic3 how can i inject service/provider inside ErrorHandlerService
[英]How can I access a service in config function or access a provider inside a service
我需要配置角度引導程序工具提示(uibTooltip)以在使用angular-bowser
進行設備檢測時為移動設備禁用。
這可以通過以下簡單的方法完成:
isMobile = _bowser.mobile
$uibTooltipProvider.options = { trigger: isMobile ? "none" : "mouseenter" }
問題: $uibTooltipProvider
是提供者 , bowser
是服務 。
我必須使用$uibTooltipProvider
在config
功能,而我不能使用bowser
在服務config
功能。 而且,無論我可以用$uibTooltipProvider
的run
功能,我可以用bowser
我已經嘗試重寫得到$功能,因為他們認為在這里 ,但“ontouchstart”事件在$窗口不辦理,我想保持啟用提示葯片。
有什么辦法可以解決這個問題嗎?
我最終決定在運行時注入一個小的CSS修改。 我有以下三種選擇:
1. 在GitHub上使用該hack :我不喜歡這樣一個事實,為了使其能夠正常工作,我必須憑經驗(通過設置一個斷點)來找出注入uibTooltipProvider的$ get函數中的實際服務是什么。 (請參閱在github線程中注入的服務與我必須注入的服務之間的區別(請參見代碼段)
2.添加Bowser庫並靜態使用它:我不喜歡該選項,因為我們已經將angular-bowser用作DeviceDetector服務的依賴項,因此我們將使用相同的庫兩次:一個靜態地配置工具提示選項在運行時進行其他所有操作。
3.注入一個小的CSS修改(我選擇的選項):
public disableTooltipsForTouchScreen(): void { if ( this._deviceDetector.isMobile() || this._deviceDetector.isTablet() ) { let styleSheet = document.createElement("style"); styleSheet["innerHTML"] = ".tooltip { display: none; }"; document.body.appendChild(styleSheet); } }
如果我們需要對bootstrap-tooltip配置進行最好的控制,那么我將考慮選項2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.