javascript - 如何为链接添加条件点击属性

标签 javascript angularjs

如果设置了特定变量,我正在尝试使 anchor 标记触发函数。在下面的示例中,name 设置为 "Shnick",因此单击链接时应触发 func() 方法。但是,当我单击该链接时,什么也没有发生。

如果未设置name,那么我不希望出现click属性,因此func()方法将不会出现'执行。

我尝试查看有关在 Angular 中添加条件属性的这两个答案:

但这些都不起作用。这是我尝试使用上面提出的两个答案

尝试#1:

angular.module('myApp', [])
  .controller('myController', function ($scope) {
    $scope.name = "Shnick";
    $scope.func = function() {
      alert("Link Clicked!");
    };
  });

angular.element(document).ready(function () {
  angular.bootstrap(document, ['myApp']);  
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<div ng-controller="myController">
  <p>Name: {{ name }} </p>
  <a href="#" [attr.click]="name ? func() : null">Click me</a>
</div>

尝试#2:

angular.module('myApp', [])
  .controller('myController', function ($scope) {
    $scope.name = "Shnick";
    $scope.func = function() {
      alert("Link Clicked!");
    };
  });

angular.element(document).ready(function () {
  angular.bootstrap(document, ['myApp']);  
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<div ng-controller="myController">
  <p>Name: {{ name }} </p>
  <a href="#" ng-attr-click="name ? func() : undefined">Click me</a>
</div>

那么,如何有条件地添加 click 属性,以便仅在设置 name 时添加该属性并执行 func() 点击时的方法?

最佳答案

尽量不要用三元条件使事情变得过于复杂,在函数本身内部添加这个检查逻辑,这样的东西应该可以工作:

$scope.func = function() {
  if(!$scope.name) {
    return;
  }
  alert("Link Clicked!");
};

关于javascript - 如何为链接添加条件点击属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56786199/

相关文章:

angularjs - 命令 "npm install"不起作用

javascript - angularJS forEach 上的 WHERE 条件

javascript - 检查 chrome 网络中的 header 时 Inject.JS 文件

javascript - facebook js sdk。如何在用户没有实际登录 Facebook 的情况下登录 Facebook?

javascript - 如何在没有 getElementById 的情况下定位 $0

javascript - 如何检查每个循环中的复选框

javascript - 程序中的锁屏

asp.net - 如何使用 ASP.NET Web 服务后端对 AngularJS 进行单元测试

javascript - 使用 angular-mocks/jasmine 测试服务 - TypeError : undefined is not an object

javascript - Angular - ng-disabled 在范围更改后不起作用