Как добавить много функций в один 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, когда вы добавляете несколько классов...но это не так :(

5 ответов


у вас есть 2 варианта :

  1. создайте третий метод, который обернет оба метода. Преимущество здесь в том, что вы вкладываете меньше логики в свой шаблон.

  2. в противном случае, если вы хотите добавить 2 вызова в ng-click, вы можете добавить '; ' после edit($index) такой

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

смотрите здесь : http://jsfiddle.net/laguiz/ehTy6/


вы можете вызвать несколько функций с помощью';'

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

попробуйте это:

  • сделайте коллекцию функций
  • создайте функцию, которая выполняет все функции в коллекции.
  • добавьте функцию в html
array = [
    function() {},
    function() {},
    function() {}
]

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

ng - click = "loop()"

многие люди используют (нажмите) опцию, поэтому я тоже поделюсь этим.

<button (click)="function1()" (click)="function2()">Button</button>

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