如何在单页应用程序中触发网址更改

时间:2019-01-23 10:57:04

标签: javascript angular

我已经在模具中创建了一个Web组件并托管在angular应用中。我想跟踪或触发angular应用程序中的url变化,但是在angular中路由不会触发窗口上的本机hashchange事件。

有什么方法可以触发角度应用程序的网址更改,因为我想捕获Web组件中的网址更改

I have tried below code which is written in stencil to listen for url change but its not getting trigger
 @Listen('window:hashchange')
   onListHandle (event) {
     alert('location: ' + document.location + ', state-hash: ' + JSON.stringify(event.state))
   }
   @Listen('window:popstate')
   onpopstate (event) {
     alert('location: ' + document.location + ', state-popstate: ' + JSON.stringify(event.state))
   }

1 个答案:

答案 0 :(得分:0)

  

HTML5引入了history.pushState()和history.replaceState()   方法,使您可以添加和修改历史记录条目,   分别。这些方法与   window.onpopstate事件。 Link

示例

var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");