2013-05-29 30 views
237

我一直在尋找如何執行此操作,但目前爲止我找不到任何相關的內容:(: 我可以嵌套兩個函數,但是我只是想知道這是否可能?這從字面上:如何在一個ng-click中添加許多功能?

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

此刻我的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); 
}; 

我想調用兩個功能,只需點擊一下,我怎麼能在angularJS做到這一點 我認爲它」當你添加多個類時,就像在CSS中那樣直截了當......但它不是:(

回答

535

你有2種選擇:

  1. 創建包裹兩種方法的第三種方法。這裏的優點是你在你的模板中放置較少的邏輯。

  2. 否則,如果您想在ng-click中添加2個呼叫,您可以添加';' edit($index)這樣

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

後在這裏看到:http://jsfiddle.net/laguiz/ehTy6/

+1

我用兩個方法(它所需的內容),但*不*有一個'NG-click'兩個電話是什麼原因? –

+0

這兩個工作只是試圖把邏輯放在你的控制器的問題。在這種情況下不是什麼大問題:) – Maxence

+0

我發現選項2絕對沒有錯,因爲它是一個指令(如ng-click)的作業,可將用戶操作映射到作用域行爲。 – ThinkingInBits

-14
ng-click "$watch(edit($index), open())" 
+1

這裏的語法不正確。如上所述,分號是分隔符;不是逗號......其中包括... –

9

可以調用具有多種功能的 ';'

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

試試這個:

  • 製作的功能
  • 集合作出這樣的循環遍歷和集合中執行所有功能的功能。
  • 添加功能的HTML
array = [ 
    function() {}, 
    function() {}, 
    function() {} 
] 

function loop() { 
    array.forEach(item) { 
     item() 
    } 
} 

ng - click = "loop()" 
相關問題