假设我有两个AngularJS模块,即M1和M2,我想实现这样的功能:当M1中的变量改变时,可以调用M2中的函数。我的代码如下,但它无法正常工作。任何人都可以帮忙看看有什么问题吗?谢谢。
(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 :(得分:0)
首先,您必须为角度应用的所有模块添加依赖项。 假设 myApp.js 文件包含以下代码并首先加载 myApp.js 文件。
'use strict';
angular.module('myApp', [
'M1',
'M2'
]);
然后加载您的其他(M1和M2)模块并尝试从不同的模块广播和接收。如果无法使其正常工作,请创建并分享小提琴。
答案 1 :(得分:0)
您可以尝试在M2模块中添加M1模块作为依赖项。
angular.module("M2", ["M1"]);