Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs-即使相同的url也重新加载页面_Javascript_Jquery_Angularjs_Reload_Url Parameters - Fatal编程技术网

Javascript Angularjs-即使相同的url也重新加载页面

Javascript Angularjs-即使相同的url也重新加载页面,javascript,jquery,angularjs,reload,url-parameters,Javascript,Jquery,Angularjs,Reload,Url Parameters,我使用的是Angularjs 1.3,我的项目有2个子菜单: href=“/子菜单” href=“/submenu?page=1” 当我在子菜单页面上单击第二个url时,页面不会重新加载,它只是更新url,但不会执行任何操作。当用户使用该查询参数登录到第二个url时,我已经编写了代码 我不想强制重新加载页面 window.location.reload(),因为它将清空$rootscope 我有一个解决方案,用Angular ui router重新定义url代码,但这很耗时,因为重新定义会破坏主

我使用的是Angularjs 1.3,我的项目有2个子菜单:

  • href=“/子菜单”
  • href=“/submenu?page=1”
  • 当我在子菜单页面上单击第二个url时,页面不会重新加载,它只是更新url,但不会执行任何操作。当用户使用该查询参数登录到第二个url时,我已经编写了代码

    我不想强制重新加载页面
    window.location.reload(),因为它将清空$rootscope

    我有一个解决方案,用Angular ui router重新定义url代码,但这很耗时,因为重新定义会破坏主要功能。我现在正在寻找快速修复方法。

    也许这样可以:

    <a href="javascript:window.open('?page=1','_self');">...</a>
    
    
    

    检查$rootscope是否为空,以确保它是空的。

    我快速修复了它。有个人评论了,但现在把它删除了。他说我应该用数据调用函数来更新视图,而不是重定向,我做到了

    但在我的例子中,菜单不在该页面的控制器范围内,我使用vanilla js进行链接重定向(在重定向之前需要执行一些操作)。 因此,为了调用控制器的函数,我检查了我是否在同一页上,如果是,则从该页抓取角度范围,以便获得该控制器中定义的所有函数,使用:

    angular.element($('#someId')).scope();
    
    应在定义ng控制器的元素上设置SomeID。它给了我在控制器范围内定义的所有函数。然后我调用了函数,页面得到更新,没有重新加载,问题得到解决。

    使用target=“\u self”

  • href=“/submenu”target=“\u self”
  • href=“/submenu?page=1”target=“\u self”

  • 使用ng view在当前页面上显示该页面。您是否正确配置了路由?如果不尝试这篇文章是的,我已经正确配置了它,这不是一个问题。这是angular的行为,如果我们单击与当前页面具有相同url的链接,它不会重新加载页面。我已经解决了我的问题,并在下面回答了它。