javascript - AngularJS 路由 Controller 不重新加载

标签 javascript angularjs location routes

我有一个非常简单的 AngularJS 应用程序,其中有两条路线:

#/search
#/results

当我从一条路线导航到另一条路线时,一切都如我所料。获取所需的任何资源并完美显示内容。

问题是当我从一条路线导航到同一路线时(即,#/results 到#/results)绝对没有任何反应。我从浏览器的 Angular 理解没有发生任何事情,但我真的希望 AngularJS 重新加载内容。

这一定很简单,但我在这上面画了空白。有人可以帮我解释一下吗?

谢谢,

乔恩

最佳答案

当您导航到同一页面时,浏览器会忽略它。
Angular.js 与 <a href=""> 的默认行为无关.

您可以做的是创建一个自定义指令,它:

  • 使用$route.reload()重新加载当前 View (路线)。
  • 使用$location.path(newPath)用于导航到其他 View 。

我做了一个 example :

app.directive('xref',function($route, $location){
  return {
    link: function(scope, elm,attr){
      elm.on('click',function(){
        if ( $location.path() === attr.xref ) {
          $route.reload();
        } else {
          scope.$apply(function(){
            $location.path(attr.xref);
          });
        }      
      });
    }
  };
});

在你看来只是创建:

<a xref="/">Home</a>
<a xref="/links">Links</a>

关于javascript - AngularJS 路由 Controller 不重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125914/

相关文章:

javascript - 在 Node.js 服务器中创建并运行动态函数

javascript - 如何使用 javascript 将用户 friend 连接的 facebook graph api 响应存储到变量或数组以便稍后使用

javascript - 从 href 调用 angularjs 作用域函数

javascript - 如何用 Angular 设置cookie

Angular - 使用后退导航测试路由

ios - 仅请求始终授权,而不请求使用时授权

javascript - Jquery tabs 边框线以扩展 div 部分内容

javascript - 不同文件中的构造函数之间的部分继承(JavaScript)?

javascript - AngularJS 中的数组索引

c# - 如何解决 Windows Phone 8 应用程序中的以下错误?