我正在使用使用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()
}
但这对我来说似乎有点脆弱和古怪。
页面更新时是否有“官方”或至少更好的聆听方式?
答案 0 :(得分:0)
种类繁多的角度解决方案,但也许可以使用window.onhashchange在这种情况下适合您。
function YouAreGoingPlaces() {
alert("Welcome to " + location.hash)
}
window.onhashchange = YouAreGoingPlaces() {
your custom actions here.
}