检测角度页面更改

时间:2018-12-12 19:39:44

标签: javascript angular

我正在使用使用Angular的第三方网站。
当用户登录到客户页面时,我需要执行一些操作,这意味着每当用户从登录页面转到其登录区域时。 (两者都在同一个网站上,并且使用Angular)。
由于操作是在页面重新加载时发生的,因此以前可以使用,但是由于我们在SPA中,因此页面更改时不会发生页面重新加载。

我的代码位于页面上,但不在Angular应用程序“内部”,并且我以前从未使用过Angular,因此我只看到全局的网页元素。

解决问题的一种方法是监视当前页面的URL,并使用https://somedomain/#/loginpage对象检测其何时从https://somedomain/#/loggedArea变为window.location

var previousHash; //This will store the hash of the page we were in before


// Then we would have to constantly check if the URL has changed
if(previousHash == "#/login" && window.location.hash == "#/loggedArea"){
  callOnLoadActions()
}

但这对我来说似乎有点脆弱和古怪。

页面更新时是否有“官方”或至少更好的聆听方式?

1 个答案:

答案 0 :(得分:0)

种类繁多的角度解决方案,但也许可以使用window.onhashchange在这种情况下适合您。

function YouAreGoingPlaces() {
    alert("Welcome to " + location.hash)
}
window.onhashchange = YouAreGoingPlaces() {
   your custom actions here.
}