Как добавить функцию к объекту angular, динамически связанному с событием onclick или click?

Добавление onclick = {{item.function}} или ng-click = {{item.function}} не будет работать

JS

angular
  .module('app', [])
  .controller('MainController', ['$scope', function($scope) {
    $scope.test = function() {
      alert(1);
    };
    $scope.items = {
      'item1': {
        name: 'Item1',
        function: 'test()' // Not calling
      }
    };
  }]);

HTML

<html ng-app="app">
<body ng-controller="MainController">
  <ul ng-repeat="item in items">
    <li ng-bind="item.name" ng-click="item.function"></li>
  </ul>
</body>
</html>

Не работает демо http://codepen.io/anon/pen/jqEKRP

0
DasEarl 1 Мар 2016 в 17:21

1 ответ

Лучший ответ

В контроллере:

...
      'item1': {
        name: 'Item1',
        f: $scope.test
      }
...

В шаблоне:

<li ng-bind="item.name" ng-click="item.f()"></li>

http://codepen.io/bparnikel/pen/bpNjoE

2
Boris Parnikel 1 Мар 2016 в 17:26