2016-07-22 8 views
0

Dieser Code funktioniert einwandfrei und verwendet den übergeordneten Controller-Bereich;Anwendung Bereiche auf Winkel Direktiven und Aufruf Objektfunktion

Mein Problem ist, dass ich einen isolierten Bereich definieren und ein Objekt anstelle einer Funktion aus der Direktive zurückgeben möchte. Dies ist mein Code

"<button type='button' post-random-feed >Post review</button>" 

.directive("postRandomFeed",['config',function(){ 
     return { 

      restrict :"A", 

      scope : { 

        }, 

      irony : function(element, attrs) 
      { 
       element.bind("click", function(){ 
        console.log(element); 
       }); 


      } 
    }; 
}]); 

Wie kann ich die Ironie-Funktion aufrufen, so dass das Element das Click-Ereignis registriert irgendwelche Fehler bitte korrigieren Sie mich. Danke

+0

Sie können, dass setzen in Link-Funktion. – ngLover

Antwort

0

Wollen Sie das tun? Sie können einen Rückruf an den Controller registrieren:

html:

<button type='button' post-random-feed on-irony="onControllerFn">Post review</button> 

Richtlinie:

.directive("postRandomFeed",['config',function(){ 
     return { 
      restrict :"A", 
      scope : {}, 
      link : function(scope, element, attrs) { 
       $timeout(function() { 
        scope.$emit(attr.onIrony); 
       }); 
      }); 

     } 
    }; 
}]); 

und Controller können Sie tun:

$scope.$on('onControllerFn', function(event) { 
    // your code here 
}); 
+0

Wie erhält man ein Objekt, das an den Controller-Bereich übergeben wird? – charlietfl

+0

innerhalb des Bereichs können wir es angeben, ob wir eine Möglichkeit Bindung oder Zwei-Wege-Bindung, wenn nötig ... Ich dachte, die Frage war, um eine Funktion in den Controller – kukkuz

+0

Vielen Dank. es war genau das, was ich brauchte – henrybbosa