2016-05-14 29 views
1

Angenommen, ich habe zwei AngularJS-Module, nämlich M1 und M2, möchte ich die Funktion implementieren, dass, wenn eine Variable in M1 geändert wird, eine Funktion in M2 aufgerufen werden kann. Mein Code ist wie folgt, aber es funktioniert nicht richtig. Kann jemand helfen zu sehen, was falsch ist? Vielen Dank.AngularJS-Kommunikation zwischen Modulen

(function() { 
"use strict"; 
angular.module("M1", []); 
    })(); 

angular.module("M1") 
.controller("M1-controller", ['$rootScope', function ($rootScope) { 
      var vm = this; 

      vm.test = ""; 
      vm.clickFunction = function() { 
       vm.test = "abc"; 
       $rootScope.$broadcast('value-changed', vm.test); 
      }; 
}]) 


(function() { 
"use strict"; 
angular.module("M2", []); 
    })(); 

angular.module("M2") 
.controller("M2-controller", ['$rootScope', function ($rootScope) { 
      var vm = this; 

      $rootScope.$on('value-changed', function (event, args) { 
       alert(args); 
      }); 
}]) 

Antwort

0

Zunächst müssen Sie die Abhängigkeit für alle Module Ihrer eckigen App hinzufügen. Angenommen, Sie myApp.js Datei enthält den folgenden Code und laden Sie zuerst die Datei myApp.js Datei.

Dann laden Sie Ihre anderen (M1 und M2) moudules und versuchen zu senden und von verschiedenen Modulen zu empfangen. Wenn dies nicht funktioniert, erstellen und teilen Sie bitte eine Geige.

0

Sie können versuchen, M1-Modul als Abhängigkeit in M2-Modul hinzuzufügen.

angular.module("M2", ["M1"]); 
Verwandte Themen