0

Ich habe 2 Module, eines für die eigentliche Seite und das andere für den Aufbau von wiederverwendbaren Komponenten. Ich habe eine Schaltfläche in meiner benutzerdefinierten Direktive, die Aktion A tut. Ich verwende diese Direktive innerhalb einer anderen Modulseite, wo ich Aktion B habe, die ausgeführt werden muss, sobald die Direktive-Schaltfläche geklickt wird.Ausführen von Ereignissen von beiden Seite und Direktive in angularjs

so ‚es sollte wie unten etwas tun ..

dir Knopf klicken -> Funktion A() + Funktion B() in Seite

Rundfunk scheint in der Umwelt i in unorthodox zu sein arbeiten

ich habe in diesem

plnkr versucht hier, was der Code wie

sieht

// Code goes here 
 
angular.module('diruser', ['dir']) 
 
    .controller('dirusercon', function($scope) { 
 
    $scope.clicks = function(ev) { 
 
     console.log('click from page'); 
 
     console.log(ev); 
 
    }; 
 
    }); 
 

 
angular.module('dir', []) 
 
    .controller('dircon', function($scope) { 
 
    $scope.dirclick = function(ev) { 
 
     console.log('click from dir'); 
 
    } 
 
    }) 
 
    .directive('dire', function() { 
 
    return { 
 
     restrict: 'E', 
 
     controller: 'dircon', 
 
     scope: { 
 
     dirclicked: '&' 
 
     }, 
 
     template: "<button ng-click='dirclick($event)'>OK</button>" 
 
    }; 
 
    });
<!DOCTYPE html> 
 
<html> 
 

 
    <head> 
 
    <script data-require="[email protected]" data-semver="1.5.5" src="https://code.angularjs.org/1.5.5/angular.js"></script> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <script src="script.js"></script> 
 
    </head> 
 

 
    <body ng-app='diruser' ng-controller='dirusercon'> 
 
    
 
    <dire dirclick='clicks(e)'></dire> 
 
    </body> 
 

 
</html>

Bitte helfen .. Vielen Dank im Voraus

Antwort

0

In Ihrer Probe, gibt es Fehler:

Sie in Rahmen definiert eine Funktion mit dem Namen dircliked, aber Sie verwenden sie als dirclick.

muss der Einsatz sein: <dire dirclicked='clicks(e)'></dire>

In Ihrer Funktion dirClick Sie in Umfang dircliked aufrufen müssen:

$scope.dirclick = function(ev){ 
    console.log('click from dir'); 
    $scope.dirclicked({e: ev}); 
} 

ich Ihre Plunker bearbeitet: http://plnkr.co/edit/2L7ezlPKcChQfulZZtx0?p=preview