角度基础和 ng 单击对<a>标签不起作用



花了一整天的时间试图弄清楚这个简单的问题,但没有运气。我添加了 ng-click 来<>标签,但它没有调用该函数。如果我将ng单击放在一个按钮上,它就可以工作。

我尝试了以下方法,但没有成功。

<li><a href="#" ng-click="signout()">Sign Out</a></li>
<li><a href="" ng-click="signout()">Sign Out</a></li>
<li><a href ng-click="signout()">Sign Out</a></li>
<li><a ng-click="signout()">Sign Out</a></li>
<li ng-click="signout()"><a href="#">Sign Out</a></li>

我注意到,当我单击它时,它添加了 ng-click-active 类

喜欢这个

<a href="#" ng-click="signout()" class="ng-click-active">Sign Out</a>

或者像这样

<li ng-click="signout()" class="ng-click-active"><a href="#">Sign Out</a></li>

我还注意到,如果我在 chrome 开发工具控制台中执行此操作,ng-单击<> 标签将起作用

$(document).foundation();

我没主意了!

更新:我正在为注销功能添加 js

angular.module('myapp')
    .controller('NavbarCtrl', function ($scope, $state, principal) {
    $scope.signout = function() {
        console.log('*******************');
        principal.authenticate(null);
        $state.go('login');
    };
});

确保在HTML中包含ng-app和ng-controller指令,如下所示:

<!-- Reference ng-app -->
<html ng-app="myApp">
  <head>
    <script data-require="angular.js@1.3.15" data-semver="1.3.15" src="https://code.angularjs.org/1.3.15/angular.js"></script>
  </head>
  <!-- Reference ng-controller -->
  <body ng-controller="mainCtrl">
    <h1>ng-click</h1>
    <a href="#" ng-click="signout()">Sign Out</a>
  </body>
</html>

然后,请确保在控制器上添加对$signout函数的引用。

var app = angular.module('myApp', []); 
app.controller('mainCtrl', function($scope){
    $scope.signout = function(){
      alert("You clicked Sign Out"); 
    }
  }); 

这里有一个指向 Plunker 的链接,展示了如何在标签上实现 ng-click。

http://plnkr.co/edit/NrF6ay06mG7lJ5OvRP3F?p=preview

如果您不需要 url,请使用"button"或"div"标签代替"a"标签。

<li><button ng-click="signout()">Sign Out</button></li>
<li><div ng-click="signout()">Sign Out</div></li>

最新更新