如何在一次点击中添加许多功能?

Yon*_*eek 289 javascript angularjs

我一直在寻找如何执行这个,但到目前为止我找不到任何相关的东西,:(我可以嵌套这两个函数是的,但我只是想知道这是否可行?我想这样做:

<td><button class="btn" ng-click="edit($index) open()">Open me!</button></td>
Run Code Online (Sandbox Code Playgroud)

我的JS代码目前:

$scope.open = function () {
  $scope.shouldBeOpen = true;
};      

$scope.edit = function(index){

  var content_1, content_2;
      content_1 = $scope.people[index].name;
      content_2 = $scope.people[index].age;

  console.log(content_1);
};
Run Code Online (Sandbox Code Playgroud)

我只需点击一下即可调用两个函数,如何在angularJS中执行此操作?当你添加多个类时,我认为它会像在CSS中那样直截了当......但它不是:(

Max*_*nce 639

你有2个选择:

  1. 创建包装两个方法的第三个方法.这里的优点是您在模板中放置了较少的逻辑.

  2. 否则,如果你想在ng-click中添加2个电话,你可以添加';' 经过edit($index)这样的

    ng-click="edit($index); open()"

见这里:http://jsfiddle.net/laguiz/ehTy6/

  • 在我自己的情况下,选项2意味着避免在指令中添加一个公共函数,这可能更慢并且肯定更难维护. (5认同)
  • 选项2没有问题,但选项1更清晰,因为您应该避免在视图中添加代码和逻辑.如果您将来需要修改某些内容,那就更好了. (3认同)
  • 选项1还为您提供了另一项无需测试的功能 (2认同)

小智 17

您可以使用';'调用多个函数

ng-click="edit($index); open()"
Run Code Online (Sandbox Code Playgroud)


Sus*_*hil 12

添加多个功能的标准方法

<button (click)="removeAt(element.bookId); openDeleteDialog()"> Click Here</button>
Run Code Online (Sandbox Code Playgroud)

或者

<button (click)="removeAt(element.bookId)" (click)="openDeleteDialog()"> Click Here</button>
Run Code Online (Sandbox Code Playgroud)


Neb*_*pic 7

很多人使用(单击)选项,因此我也将分享它。

<button (click)="function1()" (click)="function2()">Button</button>
Run Code Online (Sandbox Code Playgroud)

  • 使用(click)=“ function(); function2()”也可以。我只是发现了并想分享。 (4认同)