当前位置: 首页 > 面试题库 >

在AngularJS中,如何在URL哈希上添加$ watch?

寿伟
2023-03-14
问题内容

使用Angular,如何添加由我的应用程序更新哈希或浏览器从URL栏或后退/前进按钮更新URL时触发的手表?


问题答案:

$scope.$watch 接受函数作为第一个参数,因此您可以执行以下操作:

$scope.$watch(function () {
    return location.hash
}, function (value) {
    // do stuff
});

但我会建议使用的事件,如$routeChangeSuccess为缺省路由器:

$scope.$on("$routeChangeSuccess", function () {})

$stateChangeSuccess用于ui路由器

$scope.$on("$stateChangeSuccess", function () {})


 类似资料:
  • 问题内容: 我这里有使用struts2-jquery插件的代码 当我单击其内容时,URL会更改为类似的内容,而URL中没有任何变化。它仍然保持不变,我想要的是当我单击链接时会发生类似的情况。当我运行代码时,锚标记被翻译成这样 有了给定的内容,我该如何在网址中添加哈希? 问题答案: 这是一个工作示例(不考虑Struts2):

  • 问题内容: 有谁知道为什么1.1.5版会自动在您的网址中添加井号,以及如何将其关闭?海事组织这看起来很丑。只要您的网址不以正斜杠结尾,它就会发生。(我没有使用路线之类的东西)。 所以这: 变成 还有这个: 变成: 但是这个: 没有这个问题。 问题答案: 前几天,我遇到了这个问题。我通过为启用HTML5模式解决了该问题。看到 $ location的文件- HTML5模式 更新了$ location-

  • 问题内容: 如何转义URL查询字符串中发送的哈希符号(有时称为数字符号或井号)? 问题答案: 百分比编码。将哈希替换为。

  • 问题内容: 你们中 有谁 知道如何在 AngularJS中 很好地处理锚点哈希链接吗? 我为简单的常见问题解答页面添加了以下标记 单击上面的任何链接时,AngularJS会拦截并将我路由到一个完全不同的页面(在我的情况下是404页,因为没有路由与这些链接匹配。) 我的第一个想法是创建一个匹配“ / faq /:chapter ” 的路由,并在相应的控制器中检查匹配的元素之后,然后使用jQuery向

  • 我使用react-router进行路由,并使用hashHistory选项,这样我就可以从浏览器刷新页面,或者指定现有路由的url,然后登陆到正确的页面。它工作得很好,但我在url中看到的哈希如下所示:http://localhost/#/login?_k=ya6z6i 这是我的路由配置:

  • 问题内容: 我正在尝试从Foursquare解析URL如下所示的access_token: https://mywebsite.com/4sqredirect/#access_token=1234567890XXXXX 我试过$ routeParams和$ location,什么也没有返回。只有在尝试$ route之后,我才获得了带有以下属性的对象: 这是否意味着无法使用本机AngularJS函数