花了一整天的时间试图弄清楚这个简单的问题,但没有运气。我添加了 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>