2016-05-14 65 views
1

假設我有兩個AngularJS模塊,即M1和M2,我想實現當M1中的變量發生變化時,可以調用M2中的函數。我的代碼如下,但它不能正常工作。任何人都可以幫忙看看有什麼不對嗎?謝謝。模塊之間的AngularJS通信

(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); 
      }); 
}]) 

回答

0

首先,您必須爲您的角度應用程序的所有模塊添加依賴項。 假設你myApp.js文件包含以下代碼並首先加載myApp.js文件。

'use strict'; 

angular.module('myApp', [ 
    'M1', 
    'M2' 
]); 

然後加載您的其他(M1和M2)模塊,並嘗試從不同模塊進行廣播和接收。如果無法正常工作,請創建並共享小提琴

0

您可以嘗試添加M1模塊作爲M2模塊中的依賴項。

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