cachaito
11/1/2014 - 11:49 PM

Wywołuje funkcję z wyższego scope'a w dyrektywie

/* HTML
  <div ng-controller="callCtrl">
    <div phone dial="callHome(who)"></div>
  </div>
*/

angular.controller('callCtrl', function($scope) {
  $scope.callHome = function(person) {
    console.log('Calling... ' + person);
  };
});

angular.directive('phone', function() {
    return {
      scope: {
        dial: '&'
      },
      template: '<button ng-click="dial({who: person})">Call home</button>',// <-- zwróć uwagę na sposób przekazywania argumentów do funkcji w 'parent' kontrolerze poprzez obiekt!
      link: function(scope) {
        scope.person = 'Diana';
      }
    };
});