title: How can I control initialization of an angular directive?
body: <p>I have a directive that is used as a form control. This directive is hidden in a modal dialog and is shown when the user clicks a button to show the form. Since this directive connects to some web services, I don't want it to initialize unless the user clicks the button and the form displays (to prevent unnecessary web service calls). So, what I'm looking for is a good way for the parent controller to trigger the directive to execute some init code. Here is an example:</p>
  
  <pre><code>App.controller('parentCtrl', ['$scope', function($scope) {
    $scope.onButtonClick = function onButtonClick() {
      // tell directive to init somehow
    };
  }]);
  
  App.directive('myDirective', function() {
  return {
    restrict: 'E',
    scope: {},
    controller: function($scope, myService) {
      function init() {
        myService.getData().then(function(value) { //do init stuff });
      }
    }
  });
  </code></pre>
  
  <p>Assume the template for parentCtrl contains a tag .</p>