0

在具有html5mode平均堆棧的web應用程序,我已經定義了以下角度-UI-路由器

.state('addinHome', { 
    url: '/addin/home', 
    template: "home page" 
}) 

然後,我有另一頁https://localhost:3000/test/與按鈕<a href="/addin/home">button</a>。此外,在其控制器,我有

... ... 
$location.path("/addin/home") 
... ... 

通常情況下,兩者$location.path和按鈕導致https://localhost:3000/addin/home

現在,我加入index.html以下參考資料:

<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script> 
<script src="https://cdn.rawgit.com/devote/HTML5-History-API/master/history.js"></script> 

它擾亂了UI的路由器。因此,$location.path和按鈕導致https://localhost:3000/test/#%2Faddin#%2Fhome,這不是我想要的。

我找到了修復按鈕的解決方案:它使用<a href="addin/home" target="_self">button</a>(在與點擊相同的框架中打開鏈接的文檔;請參閱here)。

但是,我還沒有找到解決方案來修復$location.path("/addin/home")。誰能幫忙?

+1

等待,這有什麼錯'$ state.go( 'addinHome');'? –

+0

它導致'https:// localhost:3000/test /#%2Faddin#%2Fhome'像'$ location.path'。 – SoftTimur

+0

當路由器已經管理歷史記錄時,爲什麼你需要'history.js'? – charlietfl

回答

0
  • 注入$window作爲依賴。

  • 嘗試使用$window.open(URL,"_self")

+0

不要忘記注入'$ window'作爲依賴。 –

相關問題