首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular-Foundation和ng-click不适用于<a>标记

Angular-Foundation和ng-click不适用于<a>标记
EN

Stack Overflow用户
提问于 2015-04-29 12:04:09
回答 2查看 4.7K关注 0票数 2

我花了一整天的时间试图解决这个简单的问题,但没有成功。我将ng-click添加到标记中,但它没有调用该函数。如果我把ng-click放在一个按钮上,它就能工作。

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

代码语言:javascript
复制
<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类

像这样

代码语言:javascript
复制
<a href="#" ng-click="signout()" class="ng-click-active">Sign Out</a>

或者像这样

代码语言:javascript
复制
<li ng-click="signout()" class="ng-click-active"><a href="#">Sign Out</a></li>

我还注意到,如果我在chrome dev工具控制台中执行此操作,那么在标记上单击ng将会起作用

代码语言:javascript
复制
$(document).foundation();

我没主意了!

更新:我正在为signout函数添加js

代码语言:javascript
复制
angular.module('myapp')
    .controller('NavbarCtrl', function ($scope, $state, principal) {

    $scope.signout = function() {
        console.log('*******************');
        principal.authenticate(null);
        $state.go('login');
    };

});
EN

回答 2

Stack Overflow用户

发布于 2015-04-29 12:43:05

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

代码语言:javascript
复制
<!-- 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函数的引用。

代码语言:javascript
复制
var app = angular.module('myApp', []); 

app.controller('mainCtrl', function($scope){
    $scope.signout = function(){
      alert("You clicked Sign Out"); 
    }
  }); 

这里有一个指向插入器的链接,它展示了如何在标记上实现ng-click。

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

票数 1
EN

Stack Overflow用户

发布于 2017-02-02 13:32:19

如果不需要url,请使用"button“或"div”标记而不是"a“标记。

代码语言:javascript
复制
<li><button ng-click="signout()">Sign Out</button></li>
<li><div ng-click="signout()">Sign Out</div></li>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29934153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档