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

#/search
#/results

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

问题是当我从一条路线导航到同一条路线(即#/results到#/results)时,绝对没有任何 react 。从浏览器的 Angular 来看,我没有任何 react ,但我真的很希望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);
              });
            }
          });
        }
      };
    });
    

    在您的 View 中,只需创建:
    <a xref="/">Home</a>
    <a xref="/links">Links</a>
    

    09-27 09:14