【问题标题】:AngularJS communication between modulesAngularJS 模块之间的通信
【发布时间】:2016-05-14 23:54:30
【问题描述】:

假设我有两个 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);
            });
}])

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    首先,您必须为 Angular 应用程序的所有模块添加依赖项。 假设您的 myApp.js 文件包含以下代码并首先加载 myApp.js 文件。

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

    然后加载您的其他(M1 和 M2)模块并尝试从不同模块进行广播和接收。如果不能使这个工作,请创建并分享一个 fiddle

    【讨论】:

      【解决方案2】:

      你可以尝试在M2模块中添加M1模块作为依赖。

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

      【讨论】:

        猜你喜欢
        • 2013-06-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-15
        • 2017-02-20
        • 2013-02-15
        • 1970-01-01
        相关资源
        最近更新 更多