title: Angular 1.5: invoke method in deep child directive from parent directive
body: <p>I have several nested directives. I now need to invoke a function in deep child. </p>
  
  <pre><code>&lt;parent-directive&gt;
      &lt;child-directive&gt;
          &lt;deep-child-directive&gt;&lt;/deep-child-directive&gt;
      &lt;/child-directive&gt;
  &lt;/parent-directive&gt;
  </code></pre>
  
  <p>I want call method in deep-child-directive controller from parent-directive controller. 
  Is there any way except $broadcast to do this?</p>
  
  <p>my function:</p>
  
  <pre><code>$scope.refreshProductSearch = function() {
      var isRefresh = true;
      if( $rootScope.urlOption.query  ) {
          var selected = $rootScope.urlOption.query;
          if( $rootScope.urlOption.query) {
              var urlOption = util.jsonUrlParser(selected);
              isRefresh = urlOption.query.searchs ? false : true;
          }
      }
      if( isRefresh ) {
          $scope.clearValues();
      }
      $scope.$emit("removeAdvanceSearch");
  };
  </code></pre>