Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在一次点击中添加多个功能?_Javascript_Angularjs - Fatal编程技术网

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

Javascript 如何在一次点击中添加多个功能?,javascript,angularjs,Javascript,Angularjs,我一直在寻找如何执行此操作,但到目前为止,我找不到任何相关内容:( 我可以嵌套这两个函数是的,但我只是想知道这是否可行? 我想逐字逐句地这样做: <td><button class="btn" ng-click="edit($index) open()">Open me!</button></td> 我只需点击一下就可以调用两个函数,如何在angularJS中实现这一点? 我原以为添加多个类时会像CSS中那样直截了当……但事实并非如此:(您有两个

我一直在寻找如何执行此操作,但到目前为止,我找不到任何相关内容:( 我可以嵌套这两个函数是的,但我只是想知道这是否可行? 我想逐字逐句地这样做:

<td><button class="btn" ng-click="edit($index) open()">Open me!</button></td>
我只需点击一下就可以调用两个函数,如何在angularJS中实现这一点? 我原以为添加多个类时会像CSS中那样直截了当……但事实并非如此:(

您有两个选项:

  • 创建第三个方法来包装这两个方法。这里的优点是您在模板中放入的逻辑更少

  • 否则,如果您想在ng中添加2个呼叫,请单击,您可以在
    edit($index)
    之后添加“;”,如下所示

    ng单击=“编辑($index);打开()”


  • 请参见此处:

    您可以使用“;”调用多个函数

    ng-click="edit($index); open()"
    
    试试这个:

    • 收集函数
    • 创建一个循环并执行集合中所有函数的函数
    • 将函数添加到html中
    很多人使用(点击)选项,所以我也会分享这个

    <button (click)="function1()" (click)="function2()">Button</button>
    
    按钮
    
    按照以下步骤操作

    ng-click="anyFunction()"
    
    anyFunction() {
       // call another function here
       anotherFunction();
    }
    

    添加多个函数的标准方法

    <button (click)="removeAt(element.bookId); openDeleteDialog()"> Click Here</button>
    
    点击这里
    

    点击这里
    
    我使用了第二种方法(根据需要执行),但有什么理由不在一个
    ng click
    ”中有两个调用?这就是为什么我给出了两个选项。我个人更喜欢在控制器中包装调用,但这取决于您。选项2没有问题,但选项1更干净,因为您应该避免在视图中添加代码和逻辑。如果您需要修改fu中的某些内容,这会更好是的。在我自己的情况下,选项2意味着避免在指令中添加公共函数,这可能会更慢,也更难维护。选项1还提供了一个不必要的函数来测试语法。如上文所述,分号是分隔符,而不是逗号…除其他外…使用(单击)=“function();function2()”也可以。我刚刚发现了这一点,并想与大家分享。我发现在绑定到
    keyup时,这一点很有用。请输入
    分隔不起作用,因为这些方法并不总是按顺序执行。
    <button (click)="function1()" (click)="function2()">Button</button>
    
    ng-click="anyFunction()"
    
    anyFunction() {
       // call another function here
       anotherFunction();
    }
    
    <button (click)="removeAt(element.bookId); openDeleteDialog()"> Click Here</button>
    
    <button (click)="removeAt(element.bookId)" (click)="openDeleteDialog()"> Click Here</button>