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

Ответ 1

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

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

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

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

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

Ответ 2

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

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

Ответ 3

Попробуйте следующее:

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

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

ng - click = "loop()"

Ответ 4

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