Javascript angularjs:ng单击<;a>;不工作,工作在<;按钮>;

Javascript angularjs:ng单击<;a>;不工作,工作在<;按钮>;,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,下面是Javascript function gotoUrl($scope, $location, $http, $window) { $scope.setRoute = function (route) { $location.path(route); }; 我的代码是 <ul class="nav navbar-nav navbar"> <li><a href="#" data-n

下面是Javascript

    function gotoUrl($scope, $location, $http, $window) {
      $scope.setRoute = function (route) {
        $location.path(route);
    };
我的代码是

      <ul class="nav navbar-nav navbar">
            <li><a href="#" data-ng-click="setRoute('summary')"><span
                    class="icon-bar-chart"></span> Summary</a></li>
            <li><a href="#
            " data-ng-click="setRoute('transactions')"><span
                    class="icon-reorder"></span>
                Transactions</a></li>
            <li><a href="#" data-ng-click="setRoute('budgets')"><span
                    class="icon-calendar"></span>
                Budgets</a></li>
        </ul>
当我点击
交易
时,我会进入
摘要


当我将代码从
更改为
时,它工作正常,我在这里做错了什么?

尝试设置
href=“”
,而不是
href=“#”
。如果您使用的是hashbang模式路由,后者会导致整个页面重新加载,这在您的案例中似乎也会发生。您单击的任何带有
href=“#”
的链接都会导致您的应用程序完全重新加载页面并加载默认路径——在您的情况下,请尝试设置
href=“#”

而不是
href=“#”
。如果您使用的是hashbang模式路由,后者会导致整个页面重新加载,这在您的案例中似乎也会发生。您单击的任何带有
href=“#”
的链接都会导致应用程序完全重新加载页面并加载默认路径——在您的情况下,
Summary

您可以去掉GoTour函数并将DOM修改为

<a href="#/transactions"><span></span>Transactions</a>


AngularJS将处理其余部分。

您可以去掉GoTour函数并将DOM修改为

<a href="#/transactions"><span></span>Transactions</a>


AngularJS将处理其余部分。

更改此代码段

<li><a href="#
        " data-ng-click="setRoute('transactions')"><span
                class="icon-reorder"></span>
            Transactions</a></li>

  • 更改此代码段

    <li><a href="#
            " data-ng-click="setRoute('transactions')"><span
                    class="icon-reorder"></span>
                Transactions</a></li>
    
  • 修改html A标记的默认行为,以便 href属性为空时,将阻止操作

    修改html A标记的默认行为,以便 href属性为空时,将阻止操作

    或者像这样设置href:或者像这样设置href: